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 :

Grouper évènements


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Grouper évènements
    Bonjour,

    je cherche à regrouper des évènements, par exemple j'ai 10 Tbutton dans ma fiche, lorsque je clique sur 5 d'entre eux, je déclenche une action qui sera identique pour les 5 et idem pour les 5 autres mais avec une autre action. Je ne veux pas qu'à chaque Tbutton je sois obliger de créer l'évènement OnClick qui renverrai vers une procédure défini car dans mon cas, il sera possible de créer des Tbuttons même après déploiement de l'application et ça deviendrait très vite difficile à gérer. Si quelqu'un a une idée. Merci beaucoup.

    Chacks

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Habituellement, via l'IDE,
    si tu double-click sur OnClick de Button1, tu obtiendras
    la méthode liée à l'evt : Button1Click()

    pareil pour le bouton2 etc...

    mais tu n'es pas obligé de créer à chaque fois un evt différent

    pour tes boutons 2,3,4 et 5, au lieu de double-cliquer sur 'OnClick', tu peux aller rechercher la méthode 'Button1Click(...)'.

    (Tu peux aussi renommer tes méthodes dans l'inspecteur d'objet pour t'y retrouver).

    Ensuite,

    pour savoir si le click vient de Button1, ou du Button 2 ou ...

    il faut que tu testes le Sender de cette manière (par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure Form1.Button1Click( Sender: TObject )
    begin
      if Sender = Button1 then ...  else
      if Sender = Button2 then ...
      // ainsi de suite
      // TButton( Sender ) représente ton bouton clické aussi
    end
    APRES, il y a bien sur d'autres méthodes necessitant un peu plus de connaissance, si vraiment tu veux être très evolutif envers tout ca (ajout de boutons par exemple)

    il faut chercher du coté de l'affectation dynamique de méthode sur des evts de composants, avec des listes dynamiques de composants par exemple... mais je ne sais pas si tu veux aller jusque là

    Bon code !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci TicTacToe,

    c'est exactement ce que je voulais. Par contre je veux bien que tu m'expliques l'affectation dynamique de méthodes car j'aurais de nouveau Tbutton à créer par la suite (après compilation) et il faudra que je puisse affecter l'évènement souhaité.

    Merci beaucoup.

    Pierre

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Citation Envoyé par Chacks
    j'aurais de nouveau Tbutton à créer par la suite (après compilation)
    Cela signifie, qu'après avoir posé des boutons statiques via l'ide, tu souhaites poser des boutons de manière dynamiques au moment de l'execution ?

    Dans ce cas,

    Ta méthode Button1OnClick existe déjà.
    Lorsque tu créés ton bouton il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var MonBouton: TButton;
    ...
    MonBouton := TButton.Create( Self );
    MonButton.Parent := // ton composant conteneur, un panel par ex.
    MonButton.Caption := 'Un autre bouton';
    MonButton.(Left/top ) := ...
    MonButton.OnClick := Button1Click;
    Dans le cas ou TOUS tes boutons sont dynamiques, il faut procéder de même. Mais attention, du coup, Button1Click n'existe pas.

    Il te faut donc créer une méthode dans ta classe TForm, avec exactement les memes params qu'un méthode pour evt. On click
    En l'occurence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.MonBoutonClick( Sender: TObject )
    begin
      ... ton traitement ...
    end
    et ensuite lors de la création, affecter ton evt Onclick:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MonBouton := TButton.Create(Self);
    ...
    MonBouton.OnClick := MonBoutonClic;
    ...
    bon code !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci,

    graçe aux infos de ta première réponse, j'avais réussi à trouver comment affecter les procédures lors de la création.
    En tout cas toutes tes explications sont super claires.

    Merci beaucoup.

    Chacks

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

Discussions similaires

  1. Grouper les événements.
    Par Dougui_bzh dans le forum Langage
    Réponses: 5
    Dernier message: 22/08/2011, 17h34
  2. Pas d'événement OnClose quand on arrête W2K
    Par Altau dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/01/2009, 18h36
  3. exploiter un évènement d'un sous composant dans un
    Par bjl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 16h44
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Redéfinir l'événement OnExit de mon composant TEditFloat
    Par Seb des Monts dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/06/2002, 16h10

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