Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TLabel und Glass


matze - Mi 20.10.10 23:04
Titel: TLabel und Glass
Hallo.

Ich habe ein Problem unter Windows Vista / Win 7.

Wenn ich ein Label auf ein Formular platziere und ich das Label in einen Bereich setze, der als "Glass" definiert ist, dann wird das Label nicht angezeigt.
Wenn ich dann noch die Eigenschaft "GlowSize" setze, wird zwar der Glow erzeugt, aber die Schrift im Label ist durchsichtig.

Was mache ich denn da falsch?

Danke!
Matze


jaenicke - Do 21.10.10 06:01

Hast du DoubleBuffered des Formulars denn auf True gestellt? Denn das ist für alle Komponenten, die dort liegen, erforderlich.

Da ein TLabel sowas nicht hat, sollte es bereits ausreichen das beim Formular zu setzen, da das Label kein eigenes Fensterhandle hat.


matze - Do 21.10.10 10:47

Tatsache. Das funktioniert.
Ist ja blöd, dass das nicht automatisch gesetzt wird, wenn man Glass verwendet.

Danke dir!


Delete - Do 21.10.10 11:56

TLabel ist kein Windows Steuerelement, sondern wird von der VCL selber gezeichnet und hat auch kein richtiges Windows Handle, da es von TGraphicControl abgeleitet ist. Das könnte der Grund sein, warum Windows das nicht richtig verwalten kann. Probiere es mal mit einem TStaticText. Das ist eine Kapselung des Windows Labels aka Static Controls.


delphi10 - Do 21.10.10 13:35

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
TLabel ist kein Windows Steuerelement, sondern wird von der VCL selber gezeichnet und hat auch kein richtiges Windows Handle, da es von TGraphicControl abgeleitet ist. Das könnte der Grund sein, warum Windows das nicht richtig verwalten kann. Probiere es mal mit einem TStaticText. Das ist eine Kapselung des Windows Labels aka Static Controls.

So einen ähnlichen Effekt gibt es schon bei W2k und Studio 2006. Zieht man ein Panel über ein TLabel und einem TStaticText, bekommt man das TLabel nicht mehr an die Oberfläche, auch nicht wenn TPanel in den Hintergrund gelegt wird. TStaticText wird aber sehr wohl angezeigt.