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 :

[ToolsAPI] Comment récupérer la liste des uses ?


Sujet :

Delphi

  1. #1
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut [ToolsAPI] Comment récupérer la liste des uses ?
    Bonjour tout le monde, j'essaie de mettre aux experts.
    J'essaie depuis quelques temps à arriver à récupérer la liste des unité qui composent le projet en cours, puis de récupérer pour chaque unité la liste des unité qui sont dans leurs uses.

    Mais faute est que je n'arrive pas à trouver les méthodes qui me donneraient ces informations.

    J'essaie désespérement de trouver avec Google, mais avec les mots clé ToolsAPI, Expert et uses clause, il ne donne que des exemple ou il faut mettre ToolsAPI dans les uses et non un travail sur les uses.

    Merci pour vos conseils.

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    as-tu regardé la page cours j'y ai ajouté de qq liens sur ce sujet :
    http://delphi.developpez.com/cours/?them=Experts

  3. #3
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Non désolé, je n'y avais pas pensé, j'avais essayé l'aide de Delphi, la FAQ de DVP et Google, je regarde ton lien de plus près et poste pour dire si c'est Ok ou pas.

  4. #4
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    J'essaie de me dépatouiller mais j'ai bien peur qu'il n'existe pas de méthode simple.
    J'essaie de comprendre le code de GExpert, mais à première vue, ils sont obligés de passer le code de l'unité en entier et reconnaitre les différentes parties du code. Ce qui est fort complexe et source de bug car il faut savoir quand le mot implementation ou le mot uses sont des mots clés ou s'ils sont contenus dans des strings, des méthodes d'objet...
    Sans parler du fait qu'il est possible d'intégrer des commentaires et aussi des {$IFDEF ...} dans la liste des uses.

    Arriver à interpréter tout ceci me semble bien impossible à mon niveau, j'espérais pouvoir réutiliser les méthodes créées et utilisées par Borland pour reconnaitre les différentes parties des unités et ne pas avoir refaire ces parties là.
    Ils ont forcément dû le faire pour compiler les unités et créer les .dcu.

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    As-tu regardé le site http://www.mustangpeak.net/
    Delphi Open Tools API - Creating Projects, Units, Forms, other Files ?

    Je pensais, à tort peut être, que les API OpenTools offrait justement ce service de haut niveau.
    Pourtant au vue de la structure d'une unité, la clause uses ne peut pas se trouver en différent endroit.

    ps:
    Tu peux peut être coupler avec l'utilisation des expressions réguliéres pour le parsing des unités ?

  6. #6
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    En fait le lien que tu donnes, il y a les exemples génériques pour créer des Experts, il n'y a pas de code spécifique pour faire ce que je voudrais faire.
    J'ai réussi à créer mon petit expert grâce au tutoriel de Sjrd.

    J'essaie d'explorer les sources de GExpert utilisent un parser TmwPasLex déclaré dans l'unité mPasLex, j'ai jamais utilisé ces objets, je vais essayer de voir ce qu'on peut faire avec.

  7. #7
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Je pensais, à tort peut être, que les API OpenTools offrait justement ce service de haut niveau.
    Pourtant au vue de la structure d'une unité, la clause uses ne peut pas se trouver en différent endroit.
    Peut-être pas, mais j'ai pas trouvé, les méthodes et champs d'un IOTAModule sont peu nombreux et il n'y a pas.

    Citation Envoyé par Laurent Dardenne
    ps:
    Tu peux peut être coupler avec l'utilisation des expressions réguliéres pour le parsing des unités ?
    Faudra que j'apprenne les expressions régulières avant.

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    J'ai retrouvé un utilitaire très simple d'emploi que j'avais fait il y a longtemps qui :
    - pour toutes les units référencées dans les .pas d'un répertoire list les units référencées,
    - qui recherche les units référencées dans une liste de repertoires,
    - qui les analyse à leur tour afin de donner la liste de toutes les unités utilisées.
    On peut indiquer les unités indésirables comme Windows, system, graphics, ...

    Pièce jointe 1671
    En plus de l'exe, j'ai ajouté le source pour info, mais il manquera des bibli de base pour recompiler.

  9. #9
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Citation Envoyé par Graffito
    Bonjour,

    J'ai retrouvé un utilitaire très simple d'emploi que j'avais fait il y a longtemps qui liste pour tous les les units appelées paet qui se trouvent dans un
    Merci beaucoup, mais je pourrais avoir l'utilitaire ?

    PS : ta phrase n'est pas un peu tronquée ?

  10. #10
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Rebonjour,

    J'étais en train de composer le message quand le coup est parti : il y a une touche ou une combinaison de touche qui fait "envoyer", c'est pas la première fois.

  11. #11
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Merci Graffito pour ton aide, je ne voudrais pas passer pour le rabat joie mais ça ne répond pas à ce que je cherche à faire car ça ne gère pas les unités par projet mais par dossier.
    Hors je voudrais savoir pour chacun de mes projets quelles sont les unités utilisées car normalement j'ai un projet qui englobe l'autre mais l'inverse n'est pas vrai. Mon code est mal structuré au niveau des uses et chaque projet utilise toutes les unités des 2 projets.

    Ps : il n'y a pas le .dfm qui définit l'IHM dans le zip.

  12. #12
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    ça ne gère pas les unités par projet mais par dossier
    C'est vrai, mais personellement, j'ai un seul projet par répertoire.
    Tu dois pouvoir "tricher" en copiant le source du projet ou la forme principale dans un répertoire où ce source sera seul.

  13. #13
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    Merci mais je pense que je vais essayer d'utiliser des parties de ta source et des parties de GExpert pour arriver à mon but. Le but étant de le faire en tant qu'Expert dans Delphi.

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Et l'outil free,chez Icarus, n'est pas suffisant ?

  15. #15
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    L'outil d'Icarus n'a jamais réussi à compiler mes sources, il s'est toujours arrêté avec une erreur, j'ai cherché à réparer en commentant les lignes avec erreur pour lui (des If Then utilisant des objets de l'unité Excel 97) mais il en trouvait toujours d'autre.
    Je ne sais pas pourquoi il n'arrivais pas à compiler. Mais du coup, je l'ai supprimé.

  16. #16
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    ReSalut tout le monde.
    Merci de m'avoir aidé et soutenu. Je peux enfin mettre Résolu.
    Pour info, j'ai réutilisé l'objet TUsesManager de l'unité GX_UsesManager qui se trouve dans les sources de GExperts.
    Avec cet objet, on récupère directement les uses de l'unité qui se trouvent en Declaration et en Implementation. C'est cet objet qui utilise un Parser définit par GExpert qui va lire et interpréter le code de l'unité. Ainsi j'ai pas réinventé la roue.

    Seule petite ombre au tableau qui n'est pas grave, cela ne prend pas en compte les Définitions définies au niveau du projet({$IFDEF TEST} Test, {$ENDIF}).
    Peut-être un jour j'essaierai de rentrer dans le code pour les prendre en compte. On verra le jour où ce serra important.

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

Discussions similaires

  1. comment récupérer le liste des tables et des champs
    Par sekaijin dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 26/07/2006, 16h26
  2. [C#] Comment récupérer la liste des serveurs MSSQL?
    Par sorcer1 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/01/2006, 18h06
  3. Comment récupérer la liste des contacts de outlook express?
    Par arnaud_verlaine dans le forum Outlook Express / Windows Mail
    Réponses: 6
    Dernier message: 12/10/2004, 15h53
  4. [MAP] comment récupérer la liste des clé ordonnées
    Par Alec6 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 21/07/2004, 16h37
  5. Comment récupérer la liste des logiciels installés sur une machine ?
    Par david_chardonnet dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 19/09/2003, 17h41

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