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 :

utiliser plusieurs unités


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut utiliser plusieurs unités
    Bonjour, je suis en train de faire un petit logiciel... Seulement, aprés quelques 300 lignes de code (et j'imagine que ce n'est pas beaucoup) je me rend compte que c'est quand même assez brouillon, et dur pour s'y retrouver... Aussi, je fabrique des 'function' et des 'procedure' trés général (tel que trouver le max d'une Tlist, ou créer un dossier, ou transcrire les lettres en chiffres (a:1, b:2 etc... c'est pour tableur excel...) et j'aurais certainement encore besoin de ces fonction/proc plus tard, pour d'autres programmes...
    Alors voilou mes questions...(j'avais déjà essayé de déclarer/ créer une unité, mais ca marchait pas )
    -1 comment utiliser une unité?
    - 2 comment la déclarer?
    -3 ou?
    - 4 comment utiliser un variable globale dans une autre unité?
    -5 est-ce que le 'result' de ma function qui est dans une autre unitérenvois bien le résultat dans mon unité primaire?
    - 6 si vous avez d'autres remarque/ suggestion sur le traitement des unités...
    Merci pour vos réponses!!!
    M.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut
    (ou s'il y a un super tuto pas trop long , ou dans une FAQ, et bien expliquée pour une niewbies )

  3. #3
    Aos
    Aos est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 187
    Points
    187
    Par défaut
    fichier->nouveau> unité

    Tu déclares les ententes de tes fonctions/procedures dans "interfaces" et tu les codes dans "implementation". (Par défaut, les termes interface et implementation sont déja present, tu as juste a compléter).

    Pour utiliser ton unité ensuite, dans "uses" tu rajoutes le nom de ton unité.
    Une unité peut aussi en appeler une autre.

    a+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut
    oki vais test

  5. #5
    Aos
    Aos est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 187
    Points
    187
    Par défaut
    Si tu le fais bien, ça va marcher, donc oublies pas le "RESOLU"

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    voici un lien où le même sujet a été évoqué :

    http://www.developpez.net/forums/d63...annexe-projet/

    Bonne chance.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut
    re.. suis tojours en train d'écrire mon code...c'est pour compter le nombre de jour entre deux dates + résidue d'heure et minute... c'est donc un peu long.. mais j'ai une autre questions sur les uses de la nouvelles unités... Dans l'exemple de Kelloucheaeh, les uses de la nouvelles unités sont au début de l'implementation.. pourquoi?
    aussi quel uses dois-je mettre dans ma nouvelle unité? (j'ai fait un copié collé de mon unité principale, mais dans l'interface, est ce que ca va marcher??) je demande surtout les uses basique (j'ai fait ca parcequ'i lne rreconnaissait pas la fonction IntToStr.. dans quelle use est-ce? connaissez vous un bon site avec la description des use?? merciiii!

  8. #8
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Citation Envoyé par maf.mouton Voir le message
    ...IntToStr.. dans quelle use est-ce?
    Dans ce genre de situation, c'est tout simple.
    Tu fais F1 sur la fonction en question soit IntToStr, et l'aide de Delphi t'indique dans quelle unité est définie la fonction, soit SysUtils.

    F1 devrait être ton 1° réflexe.

    @+ Claudius

  9. #9
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Me suis fait griller...

    Bon, je poste quand même l'image que j'avais prise :


  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut
    oki merci pour le tips!!!
    Bon, par contre, mon algo tourne pas... vais test 2 trucs.. Mettre les uses dans l'implementation et puis faire un algo quand meme plus siomple (genre 'hello world lol)
    bon, vous tiens au courant pour les uses!

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut
    bon changer le uses de place change rien (dans ma nouvelle unit) , le programme tourne, mais quand il doit faire le calcul (ici, compter le nombre de jour.. ) ca bug.. ca doit venir de l'algo.. qu'est compliqué ouaich
    vais test en tout cas le hello world

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 8
    Points
    8
    Par défaut
    yop ca marche avec le 'hello world'.. j'ai mis les uses de ma nouvelle unit dans l'interface...
    ca serait quoi la différence si je l'avais mis dans l'implementation?

  13. #13
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    S'il n'y a pas, par exemple, des constantes ou des types définis dans l'unité A (par exemple une classe TTrucmuche), utilisés dans l'interface de l'unité B qui qui invoque A dans sa clause uses (par exemple une déclaration de variable de type TTrucmuche), ça n'a aucune importance.

    En fait, certaines clauses uses pourraient être déplacées dans la partie implementation... seulement ce serait casse-pieds à gérer, je me trompe peut-être, mais je crois qu'on préfère regrouper tout au même endroit dans la partie interface, et n'utiliser le uses de la partie implementation que quand il n'y a pas moyen de faire autrement, par exemple pour résoudre un problème de référence circulaire (deux unités qui se réfèrent l'une l'autre).

  14. #14
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    un petit investissement dans les DLL t'évitera tout les casses têtes et sont mieux adaptés à ta situation.

    Bonne chance.

  15. #15
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par Kelloucheaeh Voir le message
    Salut;

    un petit investissement dans les DLL t'évitera tout les casses têtes et sont mieux adaptés à ta situation.

    Bonne chance.
    Notre ami débute et le lancer directement sur la piste des dll n'est peut-être pas la meilleur approche lors de sa découverte de delphi.


    Citation Envoyé par maf.mouton
    c'est pour compter le nombre de jour entre deux dates + résidue d'heure et minute... c'est donc un peu long..
    J'espère que tu utilises les fonctions définies dans l'unité DateUtils pour réaliser cette partie de code. Un petit conseil au passage, toujours éviter de se compliquer la vie. Delphi dispose de nombreuses unités offrant des tas de fonctions et procédures. Il faut souvent fouiller un peu au départ pour trouver son bonheur, le forum sert à cela aussi.

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par CapJack Voir le message
    S'il n'y a pas, par exemple, des constantes ou des types définis dans l'unité A (par exemple une classe TTrucmuche), utilisés dans l'interface de l'unité B qui qui invoque A dans sa clause uses (par exemple une déclaration de variable de type TTrucmuche), ça n'a aucune importance.

    En fait, certaines clauses uses pourraient être déplacées dans la partie implementation... seulement ce serait casse-pieds à gérer, je me trompe peut-être, mais je crois qu'on préfère regrouper tout au même endroit dans la partie interface, et n'utiliser le uses de la partie implementation que quand il n'y a pas moyen de faire autrement, par exemple pour résoudre un problème de référence circulaire (deux unités qui se réfèrent l'une l'autre).
    Salut,

    personnellement, je fonctionne à l'envers :

    dans la partie interface, les uses des unités Delphi (Windows, Classes, ...) dont on est sûr qu'elles ne référenceront jamais les nôtres ;
    et les uses des unités utilisées dans l'interface (définition des types utilisés pour les paramètres et les valeurs de retour des procédures et fonctions) ;

    dans la partie implémentation, tout le reste, afin d'éviter au maximum les références circulaires lors d'une éventuelle modification du programme.

  17. #17
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    C'est ce que tout le monde devrait faire, mais que la majorité ne fait pas j'ai l'impression...

Discussions similaires

  1. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 15h27
  2. [C#] Utiliser plusieurs formulaires serveur
    Par Anomaly dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/10/2003, 19h38
  3. [struts] utiliser plusieurs fichiers properties
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/10/2003, 17h02
  4. Peut-on utiliser plusieurs canaux DMA simultanément ?
    Par le mage tophinus dans le forum Assembleur
    Réponses: 18
    Dernier message: 26/09/2003, 09h18
  5. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23

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