![]() |
Problem beim Zuweisen einer Procedure (Menüs)
Hi @ll,
Delphi-Quellcode:
Ich will mehrere Untermenüs zu einem bestimmten Menü anlegen. Jedes Untermenü soll dann ein anderes Programm öffnen können. Nur gibt es bei:
procedure RunProgram(str: String);
begin {Hier wird dann das Programm, welches unter dem Pfad str zu finden ist gestartet} end; procedure TForm1.Button1Click(Sender: TObject); var m: TMenuItem; i: integer; begin for i := 1 to 10 do begin m := TMenuItem.Create(PopupMenu1.Items[0]); m.Caption := 'SubItem' + inttostr(i); m.Name := 'Name' + inttostr(i); m.OnClick := RunProgram('C:\...'); item1.Add(m); end; end;
Delphi-Quellcode:
immer folgenden Fehler:
m.OnClick := RunProgram('C:\...');
Zitat:
MFG Doc |
Re: Problem beim Zuweisen einer Procedure (Menüs)
Du musst eine eigene Procedure machen:
Delphi-Quellcode:
Diese kannst du dann dem Onclick Eregniss zuweisen.
procedure TForm1.OnMenuClick(Sender: TObject);
begin . . . end; Kleiner Hinweis. Wenn du in der Delphi Hilfe ein Event anschaust, siehst du immer wie die entsprechende Funktion/Procedure definiert sein muss. |
Re: Problem beim Zuweisen einer Procedure (Menüs)
Hi,
so müsste es funzen:
Delphi-Quellcode:
TForm1 = class(TForm)
{...} private ProgList: TStrings; procedure MyOnClick(Sender: TObject); end; procedure FindProgramm(List: TStrings; AObject: TObject); var i: Integer; begin for i := 0 to Pred(List.Count) do if List.Objects[i] = AObject then begin Result := List[i]; Break; end; end; procedure TForm1.MyOnClick(Sender: TObject); var ProgName begin ProgName := FindProgramm(ProgList, Sender); if ProgName <> '' then RunProgramm(String); end; procedure TForm1.Button1Click(Sender: TObject); var m: TMenuItem; i: integer; begin for i := 1 to 10 do begin m := TMenuItem.Create(PopupMenu1.Items[0]); m.Caption := 'SubItem' + inttostr(i); m.Name := 'Name' + inttostr(i); m.OnClick := MyOnClick; ProgList.AddObject(C:\...', m); item1.Add(m); end; |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Windows API" nach "VCL-Komponenten und Controls" verschoben.
Kein Windows API Problem |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz