Ich habe mal rumexperimentiert und nun das gebastelt:
Delphi-Quellcode:
function TfMain.CreateLanguageAction(const AName, ACaption: string; AOnExecute: TNotifyEvent):TAction;
begin
Result := TAction.Create(MainMenu_ActMan);
Result.Name := AName;
Result.Category := 'Language';
Result.Caption := ACaption;
Result.OnExecute := AOnExecute;
Result.ActionList := MainMenu_ActMan;
end;
procedure TfMain.MainMenu_ActManBarClick(Sender: TObject);
var
x:integer;
begin
for x := 1 to length(FNAGBasicControl.Lg_LanguageFileList) - 1 do
begin
CreateLanguageAction(FNAGBasicControl.Lg_LanguageFileList[x], copy(FNAGBasicControl.Lg_LanguageFileList[x], 1, pos('.ini', FNAGBasicControl.Lg_LanguageFileList[x]) - 1), showmessage('test'));
end;
end;
Wie genau muss ich nun TNotifyEvent übergeben? Wie kann ich OnExecute Ereignisse festlegen? Muss ich den Namen der Dynamisch erzeugten Aktion vorher schon kennen, um ein Name.OnExecute statisch festzulegen?
Zur Info: Lg_LanguageFileList ist ein Array aus String, der verschiedene Dateinamen enthält. Diese dateinamen sollen dann ohne '.ini' als Optionen im Menü erscheinen.
mfg
fortuneNext