Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Halb VCL Programm; PopupMenu.OnClick zuweisen (https://www.delphipraxis.net/16906-halb-vcl-programm%3B-popupmenu-onclick-zuweisen.html)

c113plpbr 25. Feb 2004 13:52


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)

Christian Seehase 25. Feb 2004 18:53

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?

c113plpbr 25. Feb 2004 21:57

Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
 
Mein bisheriger Code sieht (etwas vereinfacht) so aus:
Delphi-Quellcode:
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;
Jetzt möchte ich ne function/procedure aufrufen, wenn auf menüitem geklickt wird, also quasi per OnClick. Nur, wie geht das?

[edit: codezeile vergessen :oops:]

Markus K. 25. Feb 2004 22:04

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:
procedure irgendeineBezeichnung(Sender: TObject);
und so weißt du dem MenuItem das onClick-Ereignis zu
Delphi-Quellcode:
TBNAMenuItem1.onClick:=irgendeineBezeichnung;
Tschüß Markus

c113plpbr 25. Feb 2004 22:14

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?)

Christian Seehase 26. Feb 2004 00:06

Re: Halb VCL Programm; PopupMenu.OnClick zuweisen
 
Moin c113plpbr,

wenn Du den Sender nicht benötigst kannst Du es so machen:

Delphi-Quellcode:
@TBNAMenuItem1.onClick:=@irgendeineBezeichnung;
in Ergänzung zu Markus Beispiel.

c113plpbr 26. Feb 2004 14:57

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 08:50 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