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