Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Globales PopupMenü (https://www.delphipraxis.net/170362-globales-popupmenue.html)

Marco.Fischer 13. Sep 2012 13:10

Globales PopupMenü
 
Hallo,
ich möchte folgendes realisieren:

In mehreren Formularen habe ich Eingabefelder, in welche der Anwender auf Wunsch vordefinierte Einträge einfügen kann. Hierzu soll er einen Doppelklick machen und ein PopupMenü erscheint an der Stelle des Doppelklicks. Nach Auswahl eines Menüeintrags/Untermenüeintrags soll ein entsprechender Wert an der Stelle der Eingabemarke eingefügt werden.
Das Popupmenü wird dynamisch durch eine Routine aufgebaut, die sich in einer separaten Unit befindet.

Wie weise ich ein einheitliches OnClick-Ereignis zu, welches sich ebenfalls in der Unit befindet und im Sender den entsprechenden Wert einfügt?

Vielen Dank für jeden Hinweis.

Bummi 13. Sep 2012 14:54

AW: Globales PopupMenü
 
PopupMenu.PopupComponent ??

Marco.Fischer 13. Sep 2012 15:08

AW: Globales PopupMenü
 
Hallo Bummi,
Danke für die Antwort.
Welches Steuerelement das Popupmenü aufruft, das ist mir schon klar und kann über Popupmenu.PopupComponent ermittelt werden.
Mir geht es hier um die Definition der Ereignisroutine für das MenuItemClick-Ereignis in einer Unit und nicht innerhalb der Klassendefinition z.B. eines Formulars.

mkinzler 13. Sep 2012 15:16

AW: Globales PopupMenü
 
Sollte doch über Actions gehen

Bernhard Geyer 13. Sep 2012 15:23

AW: Globales PopupMenü
 
Wie wäre es wenn du dein Formulare von einer neuen eigen implementierten TMyFormwithFeatures ableitest in dem du diese Funktonalität bereitstellst.

Bummi 13. Sep 2012 15:27

AW: Globales PopupMenü
 
Die Templatevariante von Bernd Geyser ist auch meine übliche Variante, wenn Du's unbedingt abstakt haben willst
Delphi-Quellcode:
unit Unit2;

interface
uses Menus,Dialogs;

type


  TStubClass=Class
     CLASS Procedure AllgPopup(Sender:TObject);
     Public

  End;

implementation

{ TStubClass }

Class procedure TStubClass.AllgPopup(Sender: TObject);
begin
    Showmessage(TPopupMenu(Sender).Popupcomponent.Name)
end;


end.
mit:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   Popupmenu1.OnPopup := TStubClass.AllgPopup;
end;

Marco.Fischer 13. Sep 2012 15:37

AW: Globales PopupMenü
 
Hallo Bernhard, hallo Bummi
Template: Projekt ist schon fertig und Funktionalität soll nachgefertigt werden.

@Bummi:
Ich möchte ja nicht das Popup-Event auslösen, sondern ich möchte den einzelnen MenuItems, die dynamisch erzeugt werden, eine einheitliche OnClick-Routine zuweisen.

Marco.Fischer 13. Sep 2012 15:47

AW: Globales PopupMenü
 
Hallo,
Problem hat sich gelöst, der Hinweis auf die TStubClass hat geholfen.
Vielen Dank für die Hilfe.:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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