Hallo,
Ich versuche bereits seit einer Weile herauszufinden, wie ich den Enabled Status eines TMenuItems aus einem tPopupMenu ändere, welches während der Laufzeit erstellt wurde.
Delphi-Quellcode:
procedure TForm1.files();
var searchResult:TsearchRec;
sample:TMenuItem;
begin
path:=ExtractFileDir(Application.ExeName);
SetCurrentDir(path+'\skins');
popup:=TPopupMenu.Create(self);
popup.AutoHotkeys:= maManual;
if FindFirst('*',faReadOnly,searchResult) = 0 then
begin
repeat
sample:=TMenuItem.Create(popup);
sample.Caption:=ExtractFileName(searchResult.Name);
sample.OnClick:=onClick;
Popup.Items.Add(sample);
until FindNext(searchResult) <> 0;
FindClose(searchResult);
end;
end;
Wenn ich also nun versuche in meiner onClick procedure das Element des Popup-Menüs auszublenden, welches angeklickt wurde, passiert dies nicht, aber warum?
Delphi-Quellcode:
procedure TForm1.onClick(Item: TObject);
begin
skin:=path+'\skins\'+TMenuItem(Item).Caption;
Edit2.Text:=TMenuItem(Item).Caption;
TMenuItem(Item).Enabled:=false;
end