1.) zum Identifizieren eines dynamisch erzeugten MenuItems würde ich das Property Tag benützen
2.) sofort nach dem Erzeugen eines MenuItems sollte man den Eventhandler zuweisen:
Delphi-Quellcode:
for i:=0 to 6 do
begin
TrayItems[i] := TMenuItem.Create(Self);
TrayItems[i].Caption := content[i];
TrayItems[i].OnClick := TrayHandler;
TrayMenu.Items.Add(TrayItems[i]);
end;
3.) Wenn man als Owner in TMenuItem.Create() das übergeordnete MenuItem angibt, kann man später das Menü auch wieder dynamisch abräumen
4.) man braucht/sollte die MenuItems nicht in einem Array (TrayItems) speichern.
Man kann das Menü doch dynamisch durchlaufen.
Ein Menü ist ein Baum, die Wurzel ist in TrayMenu.Items.