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 :

Gestion click général pour un Panel


Sujet :

Delphi

  1. #1
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut Gestion click général pour un Panel
    Hello,

    j'ai un Panel_1, qui contient divers éléments (TImage, TLabel, un autre sousPanel...), j'aimerai que lors d'un click n'importe où dans le Panel_1 (sur lui même ou un de ses éléments cités ci avant), le programme exécute une seule et même procédure de gestion de click définie par mes soins.

    J'ai donc codé cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {définition de la TForm contenant le panel_1}
    ...
      private
        procedure GestionClick(sender:TObject);
     
    {create de la TForm}
    ...
      panel_1.OnClick:=GestionClick;

    Hélas, ça ne marche que si le click est sur le panel_1 lui même, mais pas sur un des ses éléments enfants...

    Existe t'il une manière simple et rapide de prendre en compte tout click à l'intérieur d'un panel ?

    Merci.

    EDIT : je viens d'avoir une idée : faire une boucle sur les éléments du Panel, qui pour chacun fait un onClick:=GestionClick ... je vais tester...

    EDIT2:
    J'ai codé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      for i:=1 to Panel_1.controlCount do
      begin
        Panel_1.controls[i-1].OnClick:=GestionClick;
      end;
    Mais Delphi me dit qu'il connait pas onClick dans cette syntaxe là... pourtant c'est un evt de tControl... comprends pas.

    EDIT3: j'ai collé un Shape avec Brush = clear qui couvre tout le panel, puis géré le onMouseDown de ce dernier... ça marche.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 468
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 468
    Points : 1 342
    Points
    1 342
    Par défaut Y a t'il besoin de faire cela !
    Bonsoir à toutes et à tous,

    @ Peter27x, tu ne pourrais pas définir le onclick de ton panel mettre le code et associé avec l'onglet "Evénements" le Onclick du panel1 aux autres éléments présents sur la fiche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Panel1Click(Sender: TObject);
    begin
    ton code......
    end;
    Onglet "Evénements"

    Image1.onclick "=" Panel1Click

    panel2.onclick "=" Panel1Click

    Label1.onclick "=" Panel1Click

    etc...

    @+,

    Cincap

  3. #3
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par cincap Voir le message
    Bonsoir à toutes et à tous,

    @ Peter27x, tu ne pourrais pas définir le onclick de ton panel mettre le code et associé avec l'onglet "Evénements" le Onclick du panel1 aux autres éléments présents sur la fiche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Panel1Click(Sender: TObject);
    begin
    ton code......
    end;
    Onglet "Evénements"

    Image1.onclick "=" Panel1Click

    panel2.onclick "=" Panel1Click

    Label1.onclick "=" Panel1Click

    etc...

    @+,

    Cincap
    Ben si, mais c'était justement ce que je cherchais à éviter, devoir tous les définir un à un ! Devoir ensuite gérer à chaque changement (ajout d'éléments...)... etc.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Essaye ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var
      Click: TNotifyEvent;
      i1: Integer;
    begin
      Click := Panel1Click;
      for i1 := 0 to Panel1.ControlCount - 1 do begin
        if IsPublishedProp(Panel1.Controls[i1], 'OnClick') then
          SetMethodProp(Panel1.Controls[i1], 'OnClick', TMethod(Click));
      end;
    end;

  5. #5
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    Essaye ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var
      Click: TNotifyEvent;
      i1: Integer;
    begin
      Click := Panel1Click;
      for i1 := 0 to Panel1.ControlCount - 1 do begin
        if IsPublishedProp(Panel1.Controls[i1], 'OnClick') then
          SetMethodProp(Panel1.Controls[i1], 'OnClick', TMethod(Click));
      end;
    end;
    Cool, merci, si je comprends bien la dernière ligne, ça redirige l'evt onClick de tous les contrôles du panel vers la methode click du panel ?

    Sympa.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Oui, ça redirige vers Panel1Click. PanelClick1 est d'abord typecasté (?) en TNotifyEvent parce que si on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetMethodProp(Panel1.Controls[i1], 'OnClick', TMethod(Panel1Click));
    ça ne passe pas.

  7. #7
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    Oui, ça redirige vers Panel1Click. PanelClick1 est d'abord typecasté (?) en TNotifyEvent parce que si on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetMethodProp(Panel1.Controls[i1], 'OnClick', TMethod(Panel1Click));
    ça ne passe pas.

    Et comme ça, ça passerait pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetMethodProp(Panel1.Controls[i1], 'OnClick', TMethod(TNotifyEvent(Panel1Click)));

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 468
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 468
    Points : 1 342
    Points
    1 342
    Par défaut Pour bien comprendre !
    Bonjour à toutes et à tous,

    @ Peter27x et @ GoustiFruit, pour bien comprendre l'utilisation de ce topic, en D6 en compilation, j'obtiens les erreurs suivantes:

    1. IsPublishedProp = identificateur non déclaré
    2. SetMethodProp = identificateur non déclaré

    Pourquoi ?

    @+,

    Cincap

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 468
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 468
    Points : 1 342
    Points
    1 342
    Par défaut ok
    Ok il faut rajouter dans le uses :

    {$R *.dfm}

    uses
    TypInfo;

    Maintenant je serai curieux de voir le code final si ce n'est top secret.

    @+,

    Cincap

  10. #10
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par cincap Voir le message
    Ok il faut rajouter dans le uses :

    {$R *.dfm}

    uses
    TypInfo;

    Maintenant je serai curieux de voir le code final si ce n'est top secret.

    @+,

    Cincap

    Salut,

    j'utilise pas les directives {$

    Du coup je suis allé voir dans le F1, j'ai vu que la A+ activait l'alignement des champs dans les classes, alors je me suis amusé à écrire une classe avec les champs pas alignés, avec la directive {$A+}, mais ça ne m'a pas aligné mes champs !

    Comment ça marche ces directives ?

    Est ce vraiment nécessaire ?

    Pour l'instant je code sans, alors je vois pas trop ce que ça pourrait m'apporter.

    Merci !


    EDIT : ok, ça n'a rien à voir !!!! Je viens de lire autre chose dans le F1, c'est un alignement au niveau des octets...

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 468
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 468
    Points : 1 342
    Points
    1 342
    Par défaut Directives $ !
    @ Peter27x, j'indiquais l'ajout du Uses Typinfo et non d'une directive !

    Donc comme le topic est résolu je reste sur ma faim et à mon avis beaucoup d'autres membres pour comprendre la solution finale.

    @+,

    Cincap

  12. #12
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par cincap Voir le message
    @ Peter27x, j'indiquais l'ajout du Uses Typinfo et non d'une directive !

    Donc comme le topic est résolu je reste sur ma faim et à mon avis beaucoup d'autres membres pour comprendre la solution finale.

    @+,

    Cincap
    Je comprends pas bien ton problème !?

    Tu l'as la solution, non ? Tu l'as dit juste avant...

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Il voulait voir le projet peut-être^^
    Ce que tu veux faire avec quoi

    ça peut être utile peut-être aux autres^^

  14. #14
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par dragonno Voir le message
    Il voulait voir le projet peut-être^^
    Ce que tu veux faire avec quoi

    ça peut être utile peut-être aux autres^^
    Mais je comprends rien à ce que vous dites !

    Vous pouvez la consulter cette file non !? Vos écrivez dedans !

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

Discussions similaires

  1. [swing] JScroolBar pour les panels
    Par khayri dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 22/04/2006, 11h53
  2. [design][swing] design pour property panel réutilisable
    Par mlequim dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 26/11/2005, 23h07
  3. Question des gestions des genres pour livre, BD...
    Par Oberown dans le forum Schéma
    Réponses: 3
    Dernier message: 16/09/2004, 17h58
  4. Gestion des modifications pour un enregistrement
    Par Pascal Jankowski dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 15h09

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