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 :
Mais j'ai ces erreurs :
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;
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
Partager