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 :

Créer des menus dynamiquement sur un popupmenu


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Septembre 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 55
    Par défaut Créer des menus dynamiquement sur un popupmenu
    Salut,

    je cherche à créer dynamiquement les menu d'un popupmenu mais j'ai un problème pour lui attribuer un évenement onclick.

    J'ai une stringgrid à laquelle j'ai lié un popupmenu; lorsque je clique droit sur une cellule, je voudrais rajouter sur les entrées standard du popup (nouveau, quitter etc) les entrées spécifiques d'une ou plusieurs lignes de cette cellule (Rendez vous 1, rendez vous 2, etc...), et pour chaque menu ajouté dynamiquement lui attribuer un évenement onclick.

    Est-ce que quelqu'un à une idée ?
    Merci

    J'ai trouvé un code pour Delphi mais il me pose problème, je l'ai adapté de cette façon :
    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
    procedure Tfrm_depart.popup_str_grdPopup(Sender: TObject);
    var
      x : integer;
      MenuItem : TMenuItem;
    begin
      { Effacer tous les éléments de menu }
      popup_str_grd.Items.Clear;
      { Créer les éléments de menu }
      for x:=0 to 3 do
      begin
        MenuItem := TMenuItem.Create(popup_str_grd);
        { Ajouter au PopupMenu }
        popup_str_grd.Items.Add(MenuItem);
        With MenuItem do
        begin
          { Affecter à Caption le titre affiché dans les titres
           des colonnes du DbGrid }
          Caption := 'test ' + inttostr(x);
     
          {Cocher les éléments de menu qui sont déjà visibles avant l'appel}
          //Checked := DbGrid1.Columns[i].Visible;
          {Utilisation de la propriété Tag pour retrouver l'indice de l'élément
          coché/non coché dans la méthode PopItemClick implémentée ci-dessous}
          //Tag := i;
          {Affectation d'une méthode Click à l'élément de menu}
          if x = 0 then OnClick := popup_str_grd_1;
          //else if x = 1 then OnClick := popup_str_grd_2
          //else if x = 2 then OnClick := popup_str_grd_3
          //else if x = 3 then OnClick := popup_str_grd_4;
        end;
      end;
     
     
    end;
     
     
    procedure frm_depart.popup_str_grd_1(Sender: TObject);
    begin
      {Nous utilisons une référence sur l'élément cliqué}
      with TmenuItem(Sender) do
      begin
        {Inverser son état pour refléter l'état après un click}
        //Checked := not Checked;
        {Affectation de la propriété Visible du DbGrid en fonction de l'état
         coché/non coché de l'élément de menu qui vient d'être cliqué }
        showmessage('popup 1 cliqué');
      end;
    end;
    Mais j'ai ces erreurs :
    unit1.pas(303,47) Error: Identifier not found "popup_str_grd_1"
    unit1.pas(314,37) Error: class identifier expected
    unit1.pas(776) Fatal: There were 2 errors compiling module, stopping

  2. #2
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    {Affectation d'une méthode Click à l'élément de menu}
    if x = 0 then OnClick := @popup_str_grd_1;
    Il manquait le @

    Cordialement,
    Chris

  3. #3
    Membre averti

    Inscrit en
    Septembre 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 55
    Par défaut
    Citation Envoyé par chris37 Voir le message
    Il manquait le @

    Cordialement,
    Chris
    Pfff je dois avoir du caca dans les yeux, j'ai peut être effacé cela dans mon exemple delphi sans m'en appercevoir, en tout cas merci.

  4. #4
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    Dans Delphi, on ne place pas le @devant il me semble

    Cordialement,
    Chris

  5. #5
    Membre averti

    Inscrit en
    Septembre 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 55
    Par défaut
    ok, ceci explique cela

    Merci je vais tester de suite

  6. #6
    Membre averti

    Inscrit en
    Septembre 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 55
    Par défaut
    Bon ben c'est toujours pas bon

    Maintenant il bloque sur la procédure "procedure frm_depart.popup_str_grd_1(Sender: TObject);
    "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unit1.pas(314,37) Error: class identifier expected
    unit1.pas(776) Fatal: There were 1 errors compiling module, stopping

Discussions similaires

  1. Procédure Stockée pour créer des TABLE dynamiquement
    Par GuyverZ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/05/2009, 22h29
  2. Créer des menus dynamiques?
    Par naima2005 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/02/2008, 19h02
  3. Réponses: 5
    Dernier message: 06/09/2006, 13h15
  4. Réponses: 2
    Dernier message: 14/07/2006, 14h24
  5. [Eclipse] [VE] Créer des menus avec les classes SWT de VE
    Par jbcorens dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/08/2005, 12h25

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