Pb de recup de proprietes de TMenuItem crees dynamiquement dans un TMainMenu

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 3 févr. 2004 à 11:28
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008 - 3 févr. 2004 à 17:59
Bonjour :)

voila mon soucis :
je ne parviens pas a recuperer les proprietes (tag, caption, name etc) de mes X TmenuItem crées dynamiquement dans un TMainMenu.

Visuellement ça donne :
J'ai un menu (fichier, edition, favoris...), dans ce menu favoris, je cree mes X favoris (selon une listbox), je leur attribut un nom (dnMenuItem+i ce qui donne "dnMenuItem0" etc)
par la suite je ne parviens pas a choper leus proprietes !?!

nom du Mainmenu : MainMenu1
nom du menu favoris : Favoris1
Dans le menu favoris il y a par defaut un choix qui est : "ajouter un favoris"
Si je fais ShowMessage(Favoris1.Items[0].caption); il me donne bien "ajouter un favoris" mais si je mets ...[1]... il me dit "listindex is out of bound(1)" euh ouè mais non :) il y a bien un item en index 1 !! mais il est créé dyn. ... ça pose un soucis ?

ma question est donc : comment recup les proprietes de mes TMenuItem crées dynamiquement ?

merci a vous :) j'espere avoir été clair

1 réponse

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
3 févr. 2004 à 17:59
c'est probablement le sous item que tu veux afficher et non l'item même

ShowMessage(
MainMenu1.
Items.
Items[3]. {Favoris...}
Items[MainMenu1.Items.Items[3].count-1].Caption);

affiche la caption du dernier sous item d'un item menuX

pour les événements c'est plus complexe ,
var
Form1: TForm1;
add: TMenuItem;
x:Integer;
implementation

{$R *.dfm}

//add1=menuItem existant
procedure TForm1.add1Click(Sender: TObject);
begin
inc(x);
add:=TMenuItem.Create(MainMenu1);
add.Name:='add'+IntToStr(x);
add.Caption:='add'+IntToStr(x);

add.OnClick:=add1.OnClick;

MainMenu1.Items.Items[1].Insert(MainMenu1.Items.Items[1].Count,add);
end;

c'est plutôt illogique de créer un sous item qui fait
la même chose que l'item juste pour tester ça va...

donc le problème ici n'est que le référencement ,enfin je crois...

yve
0
Rejoignez-nous