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

Lazarus Pascal Discussion :

Événement OnClick d'un sous-menu [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 68
    Par défaut Événement OnClick d'un sous-menu
    Bonjour,
    je crée dynamiquement des sous-menus auquels je n'arrive pas à assigner un événement onclick
    je déclare dans "type" (mais si je le fais en "public" c'est pareil)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        procedure m9Click(Sender: TObject);
    j'écris la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.m9Click(Sender: TObject);
    begin
     caption:= inttostr(tmainmenu(sender).tag); //juste pour essai
    end;
    je crée les sous-menus (l'erreur est ligne 30)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    procedure TForm1.charger_messiers;
    var
    a:integer;
    men       :TMenuItem;
    begin
    
    men         := TMenuItem.Create(self);
    men.Name    := 'sousmenu1';
    men.Caption  := '1..25';
    m9.Add(men);
    men         := TMenuItem.Create(self);
    men.Name    := 'sousmenu2';
    men.Caption  := '26..50';
    m9.Add(men);
    men         := TMenuItem.Create(self);
    men.Name    := 'sousmenu3';
    men.Caption  := '51..75';
    m9.Add(men);
    men         := TMenuItem.Create(self);
    men.Name    := 'sousmenu4';
    men.Caption  := '76..110';
    m9.Add(men);
    
    
    for a:=1 to 25 do begin
      men         := TMenuItem.Create(self);
      men.Name    := 'menu'+ inttostr(a);
      men.Caption  := inttostr(a);
      men.Tag:=a;
      men.OnClick:=m9Click; // c'est là que ça plante
      m9.Items[0].Add(men);
    end;
    for a:=26 to 50 do begin
      men         := TMenuItem.Create(self);
      men.Name    := 'menu'+ inttostr(a);
      men.Caption  := inttostr(a);
      men.Tag:=a;
      m9.Items[1].Add(men);
    end;
    for a:=51 to 75 do begin
      men         := TMenuItem.Create(self);
      men.Name    := 'menu'+ inttostr(a);
      men.Caption  := inttostr(a);
      men.Tag:=a;
      m9.Items[2].Add(men);
    end;
    for a:=76 to 110 do begin
      men         := TMenuItem.Create(self);
      men.Name    := 'menu'+ inttostr(a);
      men.Caption  := inttostr(a);
      men.Tag:=a;
      m9.Items[3].Add(men);
    end;
    
    end;
    l'erreur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mot.pas(213,25) Error: Wrong number of parameters specified for call to "m9Click"
    où me trompe-je????

  2. #2
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour,

    Pour assigner dynamiquement un événement à un objet :

    sous Delphi : men.OnClick:= m9Click;

    mais sous Lazarus : men.OnClick:= @m9Click;

    Cordialement
    Thierry

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 68
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Salut,

    Ben oui : tu déclares un paramètre à passer pour ta procédure, et lors de l'appel tu ne lui en passes pas, donc pâté
    non, il n'y a pas besoin
    Citation Envoyé par ThWilliam Voir le message
    Bonjour,

    Pour assigner dynamiquement un événement à un objet :

    sous Delphi : men.OnClick:= m9Click;

    mais sous Lazarus : men.OnClick:= @m9Click;

    Cordialement
    Thierry
    merci beaucoup Thierry, ça marche

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 154
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 154
    Par défaut
    Citation Envoyé par nomdutilisateur Voir le message
    non, il n'y a pas besoin

    Oopsss, la chaleur sans doute...

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

Discussions similaires

  1. Problème de onClick dans un sous menu Android
    Par yoanndu15 dans le forum Composants graphiques
    Réponses: 15
    Dernier message: 14/12/2014, 15h56
  2. [TPopupMenu] sous-menu et évènement OnClick
    Par Droïde Système7 dans le forum Composants VCL
    Réponses: 18
    Dernier message: 11/07/2011, 11h03
  3. ContextMenu de l'explorer: Problème de sous menu
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 26/02/2004, 08h06
  4. Réponses: 9
    Dernier message: 14/10/2003, 15h35
  5. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52

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