IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

[Linux] Diverses questions sur le passage Windows -> Linux


Sujet :

Lazarus Pascal

  1. #1
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 637
    Par défaut [Linux] Diverses questions sur le passage Windows -> Linux
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 450
    Par défaut
    Bonjour,

    Il me semble qu'il y a tout ce qu'il faut dans SYSUTIL

    Voici un projet qui liste quelques dossier (à toi de regarder l'aide...)

    TestDossiers.zip


    Cordialement

  3. #3
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 637
    Par défaut
    Citation Envoyé par acaumes Voir le message
    Bonjour,

    Il me semble qu'il y a tout ce qu'il faut dans SYSUTIL
    Bonjour,
    et merci de t'être penché sur mon questionnement. Toutefois, je pense que tu n'as pas compris, ou compris à l'envers. Je pars de Windows pour aller vers Linux.

    Dans l'unité SYSUTIL, on commence par un "Uses Windows". Ce qui ne m'intéresse pas, puisque le but est justement de trouver une alternative à Windows.

    JS

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 261
    Par défaut
    Bonjour,

    Citation Envoyé par Jon Shannow Voir le message
    Dans l'unité SYSUTIL, on commence par un "Uses Windows". Ce qui ne m'intéresse pas, puisque le but est justement de trouver une alternative à Windows.
    JS
    Dans Lazarus sous Linux, sysutils.pp est différent et contient:
    {$IFDEF LINUX}linux,{$ENDIF}
    Sous Linux on peut utiliser les variables d'environnement, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {$IFDEF WINDOWS}
    PathDocuments:=GetWindowsSpecialDir(CSIDL_PERSONAL,False);
    {$ELSE}
    PathDocuments:=GetEnvironmentVariableUTF8('HOME')+'/Documents/';
    {$ENDIF}
    André

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 450
    Par défaut
    Bonjour (re)
    Citation Envoyé par Jon Shannow Voir le message
    Je suppose que je dois passer par des {$IFDEF}, mais j'avoue ne pas trop connaitre les directives de compilation.
    Je crois que cette discussion (même si en anglais) pourrait aider...

    Cordialement

  6. #6
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 637
    Par défaut
    Bonjour,

    Merci pour vos réponses, je regarde ça dés que je peux.

    JS

  7. #7
    Membre chevronné Avatar de der§en
    Homme Profil pro
    France
    Inscrit en
    Septembre 2005
    Messages
    990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : France
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 990
    Par défaut
    Tu devrais plus t’appuyer sur les LIBS fourni avec FPC et Lazarus qui encapsule le plus possibles les api adaptées (en interne) aux différentes plateformes, plutôt que d’appeler directement les mêmes api d’une plateforme spécifique…

Discussions similaires

  1. Question sur la calculatrice windows
    Par Niktou dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 30/06/2006, 09h55
  2. [HTML] Diverses questions sur le HTML
    Par Ekin0X dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 29/06/2006, 10h46
  3. [PEAR] Objet : Question sur le passage de variable
    Par Norabfr dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/01/2006, 01h07
  4. Question sur les services windows
    Par bilb0t dans le forum Windows
    Réponses: 8
    Dernier message: 09/11/2005, 15h31
  5. Réponses: 15
    Dernier message: 18/01/2005, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo