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

Langage Delphi Discussion :

[débutant] Utilisation d'une procédure délocalisée..


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Par défaut [débutant] Utilisation d'une procédure délocalisée..
    Bonjour.

    J'ai un programme composé d'une fiche principale à partir de laquelle une seconde est crée. Et je voudrais savoir s'il était possible d'utiliser une procédure ou une fonction de la fiche principale depuis la secondaire. Et du coup ne pas avoir à la redéfinir dans chaque fiche.

    Et est-ce que l'on peut faire la même chase pour des variables?

    Merci d'avance.

  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
    Billets dans le blog
    1
    Par défaut
    La réponse est oui aux 2 questions mais il faut vérifier auparavant si ce n'est pas un problème de conception.
    Plus tu couples tes données plus la maintenance sera difficile mais c'est un choix comme un autre

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Par défaut
    mais il ya une déclaration particulière à faire??
    parce que j'ai essayé d'utilisé ma procédure et delphi n'a pas réussi à trouver sa déclaration.

  4. #4
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Zhitoune
    mais il ya une déclaration particulière à faire??
    parce que j'ai essayé d'utilisé ma procédure et delphi n'a pas réussi à trouver sa déclaration.
    C'est peut être dû à un problème de portée ? As-tu déclaré l'unité appelée dans la clause use de l'unité appelante ?
    Quel message d'erreur exactement ? On ne peut pas le deviner

  5. #5
    Membre éclairé Avatar de Ludo_360
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 295
    Par défaut
    logiquement il faut que tu déclares ta fiche secondaire dans les uses principaux de ta fiche principale, puis tu déclares ta fiche principale dans un uses de ta fiche secondaire après l'implémentation:


    ludo

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Pour faire cela j'ai pris l'habitude de regrouper, dans une unité qu'on peut appeler UmaCaisseAOutils, toutes les constantes, variables-globales, les types, les fonctions et les procedures qui sont d'une utilité courante de façon à pouvoir les utiliser par n'importe quelle autre unité de l'appli .. et surtout pour éviter d'avoir à recoder sans cesse les mêmes trucs.

    Pour pouvoir appeler ces trucs depuis n'importe quelle autre unité il faut citer UmaCaisseAOutils dans le uses de chacune de ces unités.

    Dans l'unité UmaCaisseAOutils seront considérées comme constantes-globales, variables-globales et types-globaux tous ceux qui sont déclarés dans la zone située devant implementation (à l'exception de ce qu'on peut mettre dans la zone {private} de la TForm de cette unité). Il faut aussi placer dans la zone devant implementation l'identifiant de chaque fonction ou procedure qu'on veut pouvoir appeler depuis les autre unités par identifiant j'entends la 1ère ligne de toute proc ou fonction comme par exemple : function TrucAFaire(RichEd : tRichEdit; Sep : Char) : TStringList; apparaît dans cette zone située devant implémentation.

    Ensuite dans la zone située après implementation il faut ensuite placer le code de la fonction ou procedure elle-même :
    function TrucAFaire(RichEd : tRichEdit; Sep : Char) : TStringList;
    begin .... avec toute le code de cette fonction
    end;

    ... autre intérêt de cette pratique : on peut trimballer l'unité UmaCaisseAOutils d'une appli à la suivante avec ses utilitaires.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Par défaut
    bon ben j'avais pas fait tous ca .
    Je vais tester ca!
    Merci.

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    A Zhitoune:Comme j'ai vu que t'es sur le forum j'ajoute juste une précision à mon message précédent que je corrige ici en vert
    Pour pouvoir appeler ces trucs depuis n'importe quelle autre unité il faut citer UmaCaisseAOutils dans le uses principal de chacune de ces unités.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Par défaut
    Le Use principal c'est là où on déclare les bibliothèques?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    unit Imagerie_Excittation_locale;
     
    interface
     
    uses //ça serait ici?
      NiDaq,NIDAQCNS,NIDAQ_error_msg,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Spin, TeEngine, Series, ExtCtrls, TeeProcs, Chart,
      OleCtrls, CWUIControlsLib_TLB, Mask, ComCtrls,math;
     
    const
    Merci pour la précision

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    A Zhitoune : Oui le Uses principal c'est celui du haut après le unit Imagerie_Excittation_locale; et le interface.

    On le nomme Use principal pour le distinguer du Uses secondaire qu'on met parfois après implementation comme parade à des référencements circulaires (un référencement circulaire c'est par exemple lorsque le uses principal de la Form1 cite l'unité de la Form5 et que le uses principal de la Form5 cite l'unité de la Form1, et Delphi n'aime pas ça).
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

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

Discussions similaires

  1. utilisation d'une procédure stockée
    Par Klemsy78 dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/08/2006, 14h05
  2. [Débutant] Utilisation d'une valeur de la zone de texte dans une requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 13/07/2006, 10h42
  3. [Débutant]utilisation d'une DLL
    Par Yanos dans le forum Général Java
    Réponses: 9
    Dernier message: 01/03/2006, 13h44
  4. Réponses: 4
    Dernier message: 08/11/2005, 15h10
  5. Réponses: 4
    Dernier message: 25/10/2005, 10h36

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