Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auslöser TAction ermitteln, wobei TAction bei N Controls (https://www.delphipraxis.net/7799-ausloeser-taction-ermitteln-wobei-taction-bei-n-controls.html)

st2000 21. Aug 2003 16:09


Auslöser TAction ermitteln, wobei TAction bei N Controls
 
Hallo, weiss jemand, wie man in einem TAction.OnExecute - Eventhandler rausfinden kann, von welchem Control die TAction ausgelöst wurde ?

Sender ist TAction, aber das nützt nix, ich suche das Menuitem, welches die TAction zugewiesen bekommen hat.

Und TAction hat kein Auslöser-Komponenten-Attribut wie z.B. TPopUpMenu, wo es zumindest eine PopUpComponent gibt, die man sich mit RTTI vorknöpfen kann....

Hintergrund des Ganzen :

Es gibt ein TTreeNode. Wenn man da per Rechtsclick draufclickt, erscheint ein (in dem Moment dynamisch mit 3 TMenuItems befülltes) TPopUpMenu.
Jedes TMenuItem ist mit einem TAction verknüpft.

Nun will ich letztlich rausfinden, welcher TTreeNode mir das eingebrockt hat ;-) ...

:idea: Überlege schon, ob ich beim TMenuItem-Erzeugen einen Pointer auf den Node in den TAction-Tag ablege.
Aber kennt jemand was eleganteres ?
Muss doch schon mal vorgekommen sein.... Hab aber mit der Suche nix gefunden.

Bin für jeden Tip dankbar.... :freak: :spin: :mrgreen:

Christian Seehase 21. Aug 2003 16:42

Re: Auslöser TAction ermitteln, wobei TAction bei N Controls
 
Moin St2000,

übergib doch,den Index des Nodes in der Tag-Eigenschaft des PopupMenüs.
Vorausgesetzt, dass Du dafür gesorgt hast, dass beim Rechtsklick auf ein Item dieses auch selektiert wird.

st2000 21. Aug 2003 17:23

Re: Auslöser TAction ermitteln, wobei TAction bei N Controls
 
Super, das funzt ! Vielen Dank, Christian.

Habe den Absoluteindex genommen, und kann nun mit dem auslösenden Node jeden Unsinn treiben.

Suuuper !!

Gruss,
ST2000

:bouncing4: :hello: :nerd: :party: :coder: :mrgreen: 8)

Christian Seehase 21. Aug 2003 17:26

Re: Auslöser TAction ermitteln, wobei TAction bei N Controls
 
Moin ST2000,

bitte gerne. Freut mich wenn's geholfen hat.

Zitat:

Zitat von st2000
Habe den Absoluteindex genommen, ...

Es sollte alles möglich sein, was den Node eindeutig indentifiziert.

st2000 21. Aug 2003 17:31

Re: Auslöser TAction ermitteln, wobei TAction bei N Controls
 
Ach so, für den geneigten Leser :

Ich habe den Absoluteindex des TTreeview.Selected (=TTreeNode) in das Tag-Attribut der TAction reingeschrieben. Denn nur die TAction wird als Sender an ihren OnExecute-Eventhandler übergeben.

Das Tag muss natürlich nach Benutzung (am besten gleich im Eventhandler) wieder auf 0 gesetzt werden, da die TAction ja gerade den Sinn hat, für mehrere Controls genutzt zu werden... sonst gibts eigenartige Vorkommnisse... :twisted:

Grüsse aus HH,

ST2000

:witch:


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