cs_TkILLA
Messages postés31Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention16 mars 2005
-
18 janv. 2005 à 23:23
cs_TkILLA
Messages postés31Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention16 mars 2005
-
19 janv. 2005 à 18:15
Salut!
j'ai créé un Tmenuitem dynamique,
déclaration :
Calques: array [1..20] of Tmenuitem;
procedure affiche_masque(Sender: TObject);
création de l'item dans le menu :
Calques[i]:=Tmenuitem.Create(Self);
Calques[i].Caption:=Pseudos[i];
Calques[i].AutoCheck:=true;
Calques[i].OnClick:=affiche_masque; //affiche_masque c'est ma fonction appelée
Calques1.add(Calques[i]);
ma fonction :
procedure Tfmain.affiche_masque(Sender: TObject);
begin
with sender as Tmenuitem do
begin
if (fmain.Masques[Calques1.tag].visible) then
begin
Masques[Calques1.tag].visible:=false;
fmain.label1.caption:='Calque de '+Pseudos[Calques1.tag] +' masqué';
end
else
begin
Masques[Calques1.tag].Visible:=true;
fmain.label1.caption:='Calque de '+Pseudos[Calques1.tag] +' affiché';
Masque0.BringToFront;
end
end;
end;
par contre ca me récupère le tag de mon menus, pas de mon "sous menu"
roud59
Messages postés99Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention26 juillet 20072 19 janv. 2005 à 15:47
Salut,
Lorsque tu crées tes TMenuItem, ajoute Calques[i].Tag := i;
Ensuite dans affiche_masque, tu peux utiliser Masques[(sender as TMenuItem).Tag]. Il faut bien sur que Masques[n] corresponde à Calques[n]
Tu peux aussi faire Calques[i].Tag := Integer(Masques[i]). Comme ça, tag pointe vers la structure Masque correspondante. Ensuite : with TMasque((Sender as TMenuItem).Tag) do ...