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/)
-   -   Action in eigener Komponente (https://www.delphipraxis.net/182291-action-eigener-komponente.html)

mtm2502 15. Okt 2014 16:35

Action in eigener Komponente
 
Hallo zusammen,

ich habe ein kleines Problem. Ich bin dabei eine eigene Komponente zu erstellen (eine Art Schalter mit LED). Dieser Komponente will ich auch Actions zuweisen können. Das funktioniert auch ohne größere Probleme. Die Aktion wird beim anclicken der Komponente ausgeführt. Nun möchte ich aber, daß, wenn sich zur Laufzeit an der Action etwas ändert (Caption, Checked, Enabled), diese Änderung auch in der zugewiesenen Komponente sichtbar werden. Wie kriege ich das hin, daß die Komponente merkt, daß sich in der Action etwas geändert hat.

Ich habe schon gesucht und sogar 2 ähnliche Fragen (bzw. gleiche) gefunden, dort ist aber keine Antwort gegeben worden. Ich wollte dieses Problem deswegen noch einmal in Erinnerung bringen.

bis dene und danke im Voraus
mtm

http://www.entwickler-ecke.de/viewtopic.php?t=113586

mkinzler 15. Okt 2014 16:41

AW: Action in eigener Komponente
 
Der einfachste weg wäre die Aktion in den Settern der Eigenschaften zu setzen.

Sir Rufo 15. Okt 2014 16:43

AW: Action in eigener Komponente
 
Schon mal in den Quelltext von
Delphi-Quellcode:
TButton
geschaut?

Da würde ich nachsehen, denn der macht genau das was du suchst.

Uwe Raabe 15. Okt 2014 16:46

AW: Action in eigener Komponente
 
Die Verbindung zwischen deinem Control und der Action geschieht über einen TBasicActionLink bzw. einen Nachfahren davon (z.B. TControlActionLink). Je nachdem, wie dein Control reagieren soll kannst du entweder eine vorhandenen Link-Klassen nehmen oder musst dir selbst eine ableiten, die dann dein Control entsprechend aktiviert.

Am besten schaust du dir mal den Code von TControl.SetAction und TButtonControl.GetActionLinkClass und die Klasse TButtonActionLink an, damit solltest du schon weiter kommen.


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