![]() |
Halb VCL Programm; PopupMenu.OnClick zuweisen
Ich hab folgendes Problem: Ich programmiere gerade an einem Programm, dass keine Oberfläche besitzt, sondern nur einen TaskBarNotificationIcon. Ich benutze für diesen Icon aber ein TPopupMenu. Das Menü erscheint auch schon, nur ich würde gerne wissen wie ich das OnClick Ereignis einer function/procedure zuweisen kann.
(es existiert eine Oberfläche, diese ist aber nur eine Variable, und wird auch nie angezeit, was ich so belassen möchte) |
Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
Moin c113plpbr,
so ganz versteh' ich jetzt Dein Problem nicht. Soll das Menü jetzt statisch, also zur Entwurfszeit erstellt werden, oder dynamisch also zur Laufzeit? |
Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
Mein bisheriger Code sieht (etwas vereinfacht) so aus:
Delphi-Quellcode:
Jetzt möchte ich ne function/procedure aufrufen, wenn auf menüitem geklickt wird, also quasi per OnClick. Nur, wie geht das?
var
F : TForm; TBNAIcon : TTrayBarIcon; TBNAMenuItem1 : TMenuItem; TBNAMenu : TPopupMenu; begin TBNAMenuItem1 := TMenuItem.Create(F); TBNAMenuItem1.Caption := 'xyz'; TBNAMenu := TPopupMenu.Create(F); TBNAMenu.Items.Add(TBNAMenuItem1); TBNAIcon := TTrayBarIcon.Create(F); TBNAIcon.PopupMenu := TBNAMenu; TBNAIcon.CreateIcon; end; [edit: codezeile vergessen :oops:] |
Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
Hi c113plpbr,
du kannst ein onClick Ereignis wiefolgt zur Laufzeit hinzufügen. Du brauchst dafür aber eine Procedure, welche du im Quelltext erstellst.
Delphi-Quellcode:
und so weißt du dem MenuItem das onClick-Ereignis zu
procedure irgendeineBezeichnung(Sender: TObject);
Delphi-Quellcode:
Tschüß Markus
TBNAMenuItem1.onClick:=irgendeineBezeichnung;
|
Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
@Markus K.: Daran hab ich auch schon gedacht ... leider Fehlanzeige:
[Fehler] xyz.dpr(41): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' (liegt wohl daran dass ich keine 'reguläre' form hab, also auch kein 'type TForm1 = class(TForm) usw.'. Is das trotzdem irgdendwie zu schaffen?) |
Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
Moin c113plpbr,
wenn Du den Sender nicht benötigst kannst Du es so machen:
Delphi-Quellcode:
in Ergänzung zu Markus Beispiel.
@TBNAMenuItem1.onClick:=@irgendeineBezeichnung;
|
Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
Danke, jetzt funktionierts! Ich hab bisher immer das @ vor TBNAMenuItem1 vergessen :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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