Ich habe das gleiche versucht mit TMenuItem. Leider brauche ich aber als Sender für meine procedure die Instanz der Klasse die die procedure aufgerufen hat. Momentan kommt als Sender immer der Formularname zurück.
Delphi-Quellcode:
while not q_tmp.Eof do begin
NewItem[i] := TMenuItem.Create(Self);
NewItem[i].OnClick := Open;
NewItem[i].Name := 'ietm' + IntToStr(i);
NewItem[i].Caption := q_tmp.Fieldbyname('NAME').AsString;
popup.Items.Add(NewItem[i]);
inc(i);
q_tmp.Next;
end;
Delphi-Quellcode:
procedure Tform.Open(Sender: TObject);
var s: ShortString;
begin
with Sender as TMenuItem do begin
s:= Text;
end;
ShowMessage(s);
end;
Wie ist das möglich?