Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrere Anweisung in einem OnClick-Ereignis (https://www.delphipraxis.net/27335-mehrere-anweisung-einem-onclick-ereignis.html)

GimbaR 8. Aug 2004 15:05


Mehrere Anweisung in einem OnClick-Ereignis
 
Hi, hab mal wieder ne Frage, ich hab mit der Kompo "CoolTrayIcon" gearbeitet und wollte alle Items (bis auf das letzte) in ein PopupMenu einfügen (PopupMenu1) und dann per zuweisen eines onClick-ereignisses eine variable(ein String, der genauso heißt wie das item) definieren und danach eine prozedur starten, die die variable beinhaltet.

Hier der Code der prozedur:
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var
  i, n: Integer;
  game: String;
  NewItem: TMenuItem;
begin
  SaveConfig;
  n:=3;
  for i:= 0 to ComboBox1.Items.Count-2 do
  begin
    n:=n+1;
    game:=ComboBox1.Items[i];
    NewItem:=TMenuItem.Create(PopupMenu1);
    PopupMenu1.Items.Add(NewItem);
    NewItem.Caption:=(game);
    NewItem.Tag:=n;
    NewItem.OnClick:=(begin gamename:=NewItem.Caption; StartGame; end;); //<-geht das? gamename, ist eine variable, die für das gesamte Formular erreichbar ist.
  end;
  Application.Minimize;
  CoolTrayIcon1.IconVisible:=true;
  CoolTrayIcon1.PopupMenu:=PopupMenu1;
end;
Meine Frage ist, ob dies überhaupt möglich ist, und wenn ja, wie?

mirage228 8. Aug 2004 15:09

Re: Mehrere Anweisung in einem OnClick-Ereignis
 
Hi,

so ist das nicht möglich.

Du musst eine eigene Prozedur dafür anlegen.

Beispiel:
Delphi-Quellcode:
procedure TForm1.OnClick(Sender: TObject);
begin
  GameName := TMenuItem(Sender).Caption;
  StartGame;
end;
Dann kannst du ja schreiben:
Delphi-Quellcode:
NewItem.OnClick := OnClick;
mfG
mirage228

Niko 8. Aug 2004 15:16

Re: Mehrere Anweisung in einem OnClick-Ereignis
 
Hi,

es ist möglich, du musst aber eine eigene Prozedur dafür schreiben:
Delphi-Quellcode:
procedure TForm1.PopUpItemClick(Sender: TObject);
begin
  gamename := (Sender as TMenuItem).Caption;
  StartGame;
end;
Die Zuweisung sieht dann so aus:
Delphi-Quellcode:
NewItem.OnClick := PopUpItemClick;

GimbaR 8. Aug 2004 15:35

Re: Mehrere Anweisung in einem OnClick-Ereignis
 
k, big THX...
glaich mal ausprobieren...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz