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 :

Comportement fonction -> nom approprié


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 70
    Par défaut Comportement fonction -> nom approprié
    Désolée pour l'intitulé mais c'est le plus clair que j'ai trouvé... Voilà en fait suivant l'état du programme je voudrais qu'il y a ait le même traitement d'une fonction mais sur des composants différents. Je m'explique, j'ai deux TEdit, EditInitial et EditModifie.
    Au lieu de réecrire la même fonction avec EditInitial et EditModifie. Je voudrais pouvoir émettre une condition et selon cette condition utiliser le Tedit approprié.
    Dois-je utiliser findComponent ou faire un tableau de deux TEdit ou y a t il un moyen plus propre ?
    J'espère avoir été assez claire.

  2. #2
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Bonjour,

    S'il s'agit d'un évènement, tu peux affecter la même procédure aux deux composants dans l'EDI.
    Sinon, rien ne t'empêche de faire une procédure générique prenant un objet TEdit en paramètre. Ensuite, il te suffit d'appeler cette procédure avec les deux objets en paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure SetEditText(AEdit: TEdit);
    begin
      AEdit.Text := 'Test';
    end;
     
    ...
     
    SetEditText(Edit1);
    SetEditText(Edit2);
    @++

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 70
    Par défaut
    ok... merci c'est pourtant simple et moi je me complique la vie, la deuxième solution me va très bien

  4. #4
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Il est inutile de passer par un paramètre de type TObject et effecteur des transtypages... Un paramètre TEdit est bien plus simple et clair quand on sait quel type d'objet doit être géré par la procédure.
    C'est prendre des risques inutiles non détectables à la compilation.

    @++

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    ce n'etait qu'un exemple qui permet de generaliser
    la posibilite de pouvoir travailler sur n'importe qu'elle composant le type n'etant que tres peut important

    Mais tu as raison si le type est bien defini autant ne pas passer par l'ancetre

    @+ Phil

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 70
    Par défaut
    Merci pour toutes ces réponses. Cela dit j'ai eu un autre problème j'ai déclaré un Tshape dans une autre unité et dans mon unité actuelle j'ai une procédure OnMouseMove dans laquelle je recherche le un TShape en particulier en fonction du nom. Mais le nom n'est pas reconnu. Voici un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TEcriture.OnMouseMoveShape(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
    begin
       if (Sender as TShape).Name = 'my_ShapeCHG' Then
       begin
          TMDIChild(MainForm.ActiveMDIChild).SetCursor(crSizeNWSE);
       end;
    end;
    Je crois que c'est parce que my_ShapeCHG est déclaré dans une unité différente faut-il que je précède le nom de quelque chose ?
    Suis-je claire ?

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    tu peut utilisé un "sender" dans ta fonction afin de connaitre l'appelant

    je m'explique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Procedure FaitUntruc(sender : Tobject);
    begin
      if (Sender as TEDIT).name = 'EditInitial' Then 
         (Sender as TEDIT).Color := ClRed
     else 
       (Sender as TEDIT).Color := ClBlue;
    end;
     
    ...
      Faituntruc(EditInitial);
    ...
     Faituntruc(EditModifie);
    ...
    @+ Phil

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/08/2007, 12h25
  2. [MySQL] Fonction pour nom des champs
    Par madevilts dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2007, 18h45
  3. [MySQL] Appel d'une fonction au nom généré dynamiquement
    Par FrankOVD dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 10/06/2006, 14h36
  4. Comportement fonctions imbriquées avec appel à Xmlhttprequest
    Par eirmag dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/05/2006, 16h10
  5. [Mail] fonction mail / nom de l'expediteur
    Par santoya dans le forum Langage
    Réponses: 1
    Dernier message: 03/03/2006, 18h17

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