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

Delphi Discussion :

Comprendre l'organisation des répertoires de Delphi


Sujet :

Delphi

  1. #1
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut Comprendre l'organisation des répertoires de Delphi
    Bonjour,

    voici les répertoires de Lazarus sur mon poste de travail Windows :
    Nom : Capture d’écran 2021-12-05 121412.png
Affichages : 140
Taille : 21,7 Ko
    Pour installer UniDAC et des composants TMS Software, j'ai copié les sources dans C:\lazarus2.2.0RC2-fpc-3.2.2-win64. J'ai choisi ce répertoire d'installation. Le répertoire components a été créé automatiquement et j'y ai placé les sources de mes paquets Unidac et TMS. J'ai compilé et installé les paquets.
    Nom : Capture d’écran 2021-12-05 121506.png
Affichages : 132
Taille : 21,5 Ko
    Cela fonctionne immédiatement.

    ---------

    J'ai installé récemment Delphi 10.4.
    M'a-t-il proposé de changer le répertoire racine ? S'il l'a fait ce n'est pas de manière évidente. Donc il a tout (ou pas ?) installé dans :
    Nom : Capture d’écran 2021-12-05 123003.png
Affichages : 128
Taille : 19,2 Ko

    C:\Program Files (x86) ? Delphi même en version 10.4 est encore en 32 bits ? On remarque que FMXLinux [qui ne fonctionne pas sur la version Community] et les composants UniDac qui tous deux s'installent à partir d'un exe, se sont tous les 2 placés automatiquement en dehors du répertoire Embarcadero mais dans Program Files (x86).
    J'ouvre le dossier Embarcadero pour essayer d'en comprendre la structure :
    Nom : Capture d’écran 2021-12-05 123321.png
Affichages : 138
Taille : 38,9 Ko
    C'est un "mixte", un panaché de Lazarus et d'un classique MariaDB ou Apache : sources, lib, includes directement dans la racine...

    ---------

    Quel est le problème ? Après avoir installé les composants TMS manuellement en respectant les consignes de TMS Software, je relance Delphi Community :

    Nom : Capture d’écran 2021-12-05 123842.png
Affichages : 124
Taille : 68,9 Ko
    Il indique que les composants TMS sont installés.

    Immédiatement, dans un projet VCL, je pose une TTMSFNCComboBox. Je compile :
    Nom : Capture d’écran 2021-12-05 124123.png
Affichages : 112
Taille : 12,3 Ko
    RAS. Bien mais je n'utilise que FMX

    Et en FMX ?
    Même chose, un projet vide FMX, la TForm1 et une TMSFNCComboBox :
    Nom : Capture d’écran 2021-12-05 124717.png
Affichages : 124
Taille : 63,3 Ko
    Et cela ne fonctionne pas alors qu'en VCL il n'y a pas de problème.

    Renseignements pris : pour que cela fonctionne, il faut "connaître" un peu Delphi. 2 fois "rien" !
    Outils >> Options puis
    Nom : Capture d’écran 2021-12-05 125148.png
Affichages : 120
Taille : 75,8 Ko
    Facile a repérer dans l'arborescence des options.

    Résultat :
    Nom : Capture d’écran 2021-12-05 125356.png
Affichages : 118
Taille : 11,0 Ko

    Commentaire saugrenu, je l'admets mais immédiatement à l'esprit : depuis le temps, "ils" n'ont pas encore réussi à intégrer correctement Firemonkey dans l'ancien IDE ?

    Rien d'impossible donc mais plusieurs réflexions complémentaires :
    1. en être encore au 32 bits pour l'IDE pour un produit moderne ! Pas facile de trouver des appareils 32 bits aujourd'hui. Heureusement que Windows est tolérant !
    2. le mode "assistanat", si possible en utilisant les "exe" d'installation des composants, est privilégié. C'est assez catastrophique pour 2 raisons :
      • on ne décide pas de grand chose
      • on ne voit rien... Je suppose que c'est parce qu'on ne vous incite pas à aller voir comment cela marche... Mais pire c'est la galère quand on rencontre ce type de problème inattendu. Vu qu'on est au courant de rien, la perte de temps est garantie; Je préfère intervenir avant, histoire de me prémunir de ce genre de problème.

    Alors pardonnez ma question d'ordre lazarusienne -si je peux dire- c'est à dire plus près d'un programmeur Linux et Mac qui aime savoir ce qui se passe et où cela se passe, qui à l'habitude de compiler à la main voire de construire en ligne de commande : si je souhaite installer mes composants TMS à la main dans Delphi... où faut-il positionner proprement les sources de ce composant pour que FMX ne me demande pas d'ajouter mes 2 répertoires externes comme le fait VCL ?

    Merci. Cordialement. Gilles

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Alors en fait Delphi n'a pas grand chose à voir avec l'installation des composants TMS, si celle-ci fonctionne sous VCL et pas sous FMX, c'est à TMS de corriger sa procédure.

    Ensuite du côté Delphi, c'est simple, il a besoin d'avoir accès aux sources (voir au dcu si les sources ne sont pas disponibles)...et pour cela il n'y a pas 36 solutions il faut indiquer à Delphi où il doit chercher les sources

    1) dans Outils | Options / Langage / Delphi / Bibliothèque
    cette première option permet de configurer les chemins pour tous les projets

    2) dans Projet | Options / Construction / Compilateur Delphi / Chemin de recherche
    ça permet de renseigner des chemins contenant différentes unités pour un projet en particulier

    3) dans le .DPR, lister toutes les unités sous la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    uses
      Unit1 in '..\Chemin\Unit1.pas';
    ce qui se fait automatiquement quand on ajoute une unité au projet.

    cette dernière option et plus laborieuse (et ne permet pas de retrouver les includes) mais rend la compilation indépendante de la configuration de l'IDE ou du projet, c'est plus pratique pour la compilation en ligne de commande.

    Ensuite, le nombre de répertoires et sous-répertoires à ajouter dans cette configuration pour TMS dépend des choix de TMS et pas de Delphi
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 138
    Points : 207
    Points
    207
    Par défaut
    Bonjour Paul,

    merci pour ta réponse.

    OK je vois qu'il n'y a guère mieux à faire que d'indiquer le chemin à chaque nouveau paquet de composants installé pour peu qu'il soit compatible FMX... comme si la partie FMX des composants était un corps étranger non identifiable par Delphi. Que l'IDE soit en VCL, j'ai peu de doutes là-dessus. Mais que d'une manière automatique, il ne soit pas capable de référencer -puisqu'apparemment c'est cela le problème- automatiquement les bibliothèques FMX que l'on vient d'importer en même temps que leur contrepartie VCL parfaitement référencée, je trouve cela regrettable et totalement insuffisant.

    J'ai pris bonne note de la manipulation. J'espère que je ne vais pas découvrir de nouvelles pratiques identiques à celle-là. J'étudie toujours le fonctionnement de l'IDE. Je vais essayer de créer 2 composants un TTstEdit et TTstButton, les intégrer dans un paquet d'installation et voir ce que cela donne. Je fais cela plus qu'usuellement en Lazarus et dans les 3 OS mais je ne suis pas confiant pour autant

    Normalement s'il ne s'agit pas d'un problème Delphi, en concevant mes 2 composants je vais pouvoir indiquer quelque part qu'il faut les référencer automatiquement aussi bien pour la partie VCL que pour la partie FMX, puisque TMS semble fautif, c'est la conclusion que je pourrais en déduire. Ce qui m'inquiète est qu'Unidac installé à partir d'un exe a ajouté lui aussi les chemins à partir de l'exe.
    Nom : Capture d’écran 2021-12-06 092808.png
Affichages : 81
Taille : 26,5 Ko
    Heureusement, il y a le forum

    Donc pour la question en cours : résolue

    A bientôt. Gilles

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 029
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Perso, je n'installe rien dans Program Files (x86 ou non) si je peux l'éviter.

    Mes Delphi, tout comme mes composants sont situés sur un disque autre d:\Embarcadero\Studio , d:\Embarcadero\composants
    Pourquoi ? En partie à cause de l'UAC, en partie pour ménager de l'espace de mon disque SSD

    Seuls les paquets et styles se retrouvent dans les Documents Public/Embarcadero
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/03/2021, 16h55
  2. [Delphi 6] Répertoires par défaut
    Par TheBigMac dans le forum Delphi
    Réponses: 4
    Dernier message: 21/02/2007, 17h47
  3. [Delphi 6] composant pour sélection d'un répertoire
    Par ludovic tambour dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/11/2006, 15h48
  4. Réponses: 4
    Dernier message: 24/03/2006, 22h54

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