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/)
-   -   Label trotz unsichtbarem Background klickbar machen (https://www.delphipraxis.net/173624-label-trotz-unsichtbarem-background-klickbar-machen.html)

Jumpy 7. Mär 2013 10:29

Label trotz unsichtbarem Background klickbar machen
 
Hallo,

ich habe ein Formular für das eine TransparentColor definiert ist und dem ich diese Color auch Zuweise. Dadurch wird das Form unsichtbar und auch der Hintergrund der Labels die auf diesem Form sitzen. Das einzige was somit noch sichtbar ist, ist die Schrift / der TExt der Labels.

Die Labels haben aber sowohl ein Popup-Menü als auch OnClick-Events. Diese erreicht man in der Konstallation aber nur, wenn man eine Buchstaben der Schrift beim klicken erwischt. ist man irgendwo im Bereich der Labels, wo nichts steht, erreicht man mit dem Klick nichts.

Geht das irgendwie doch, das ganze Label in der Konstellation klickbar zu machen?

Perlsau 7. Mär 2013 11:09

AW: Label trotz unsichtbarem Background klickbar machen
 
Das ist doch aber der Sinn & Zweck der Transparenz: Daß die darunter liegenden Forms durchscheinen und bedienbar sind. Du könntest jedoch die Schriftart fetter wählen oder jedem Label einen Button soz. als Unterstrich oder Sockel spendieren, auf den dann geklickt werden kann. Oder du wählst für den Hintergrund deiner Labels eine andere als die Transparenz-Farbe.

Eine weitere Möglichkeit bestünde darin, alle Windows-Messages abzufangen und daraufhin zu prüfen, ob in eines deiner Labels geklickt wurde. Diesen Code mußt du dir aber selber austüfteln ... dort steht schon ein bissel was dazu ...

stahli 7. Mär 2013 11:21

AW: Label trotz unsichtbarem Background klickbar machen
 
Wenn man eine eigene Komponente ableitet, könnte man die gewünschte Eigenschaft durch Überschreiben der "HitTest"-Behandlung erreichen.
(Dafür gibt es zwei Messages. Ich weiß jetzt nicht, welches die richtige wäre.)


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