Bonjour à toutes et tous,
Pour mon PC Perso, j'envisage sérieusement de quitter le monde de Windows (la politique de Microsoft rend Windows 11 "imbouffable") et de me diriger vers Linux.
Pour tenter le coup, j'ai récupéré un portable sur lequel j'ai installé Mint Cinnamon.
J'ai installé les paquets Lazarus (depuis le site, et non ceux de la distri) et copier un de mes projets.
Le problème qui va se poser à moi, sont les procédures propres à Windows.
J'ai en effet une unité qui comporte un certain nombre d'appel à des procédures comme
Function FGet_CheminSpeciaux( inp_IdChemin : Integer) : String;
qui en fonction de l'ID passée renvoie le chemin complet de "Documents"; "Images"; "Vidéos"; etc...
J'ai défini les constantes suivantes
1 2 3 4 5 6
| kRepBureau : Integer = CSIDL_DESKTOP;
kRepDocuments : Integer = CSIDL_PERSONAL;
kRepImages : Integer = CSIDL_MYPICTURES;
kRepMusique : Integer = CSIDL_MYMUSIC;
kRepVideo : Integer = CSIDL_MYVIDEO;
kRepAppData : Integer = CSIDL_APPDATA; |
La fonction en elle-même est définie ainsi
1 2 3 4 5 6 7
|
Function Fget_cheminspeciaux(Inp_idchemin : Integer) : String;
Begin
SetLength( Result, MAX_PATH);
SHGetSpecialFolderPath(0,PChar(Result),Inp_idchemin,Longbool(False));
Result := Trim(Result);
End; |
L'idée est que le programme fonctionne toujours sous Windows, mais puisse aussi fonctionner sous Linux.
Je suppose que je dois passer par des {$IFDEF}, mais j'avoue ne pas trop connaitre les directives de compilation.
De plus, je n'ai aucune idée de comment coder cette fonction pour quelle fonctionne sous Linux de la même manière que sous Windows.
Si quelqu'un à des conseils, des idées, les deux, merci d'avance.
JS
Partager