Einzelnen Beitrag anzeigen

fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Aktionen zur Laufzeit einfügen?

  Alt 11. Dez 2008, 11:51
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
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat