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/)
-   -   Delphi PageExtControl zeichnet manchmal Labels nicht [Berlin] (https://www.delphipraxis.net/191736-pageextcontrol-zeichnet-manchmal-labels-nicht-%5Bberlin%5D.html)

SearchBot 15. Feb 2017 11:26

PageExtControl zeichnet manchmal Labels nicht [Berlin]
 
Hallo,

ich nutze seit Jahren die freie Komponente TPageExtControl, die man zB bei Torry bekommt. Der Autor scheint nicht erreichbar zu sein.

Ich habe seit Delphi Berlin das Problem (davor hatte ich Delphi XE), dass auf manchen Tabsheets die Labels nicht gezeichnet werden, auf anderen in der gleichen Anwendung aber schon.

Auffällig ist, daß wenn ich ein Label direkt auf dem TabSheet platziere, es eher nicht gezeichnet wird als wenn ich es in einer Groupbox habe, die auf dem Tabsheet liegt.
Und es gibt ein Ereignis, daß sie plötzlich doch gezeichnet werden.

Und es betrifft die auch Labels eines TLabeledEdit.
Bei einem TStaticLabel ist mir das noch nicht aufgefallen (ich benutze sie aber auch sehr selten, weil dieses nicht immer korrekt Autosize macht).

Dieses Verhalten habe ich nur zur Laufzeit :pale: ; im Designer ist es immer korrekt.

Ich weiß nicht, wie ich das Verhalten korrigieren kann.
Kennt das jemand oder hat dafür eine Lösung?

himitsu 15. Feb 2017 12:06

AW: PageExtControl zeichnet manchmal Labels nicht [Berlin]
 
TStaticText ist das "eigentliche" Windows-Control eines Labels in Windows. (eigenständiges Windows-Control)

TLabel ist "virtuelles" ein VCL-Konstrukt, welches sich irgendwie in seinen Parent hackt und auf dessen Canvas gezeichnet wird. (das wird bei dir wohl irgendwo hängen)
Mit einem TPanel (gern auch ohne Rahmen) oder eben der TGroupBox dazwischen, wird das Label nun auf Diesem gezeichnet und nicht mehr auf dem TPageExtControl-TabSheet.

TLabeledEdit ist ein TEdit, wo ein TLabel "daneben" plaziert wird.

mögliche Lösungen:
* rausfinden wie TLabel, TImage, TPaintBox und TShape das machen und es reparieren
* immer ein TPanel ohne Border und mit alClient als Erstes auf die TabSheets und dann den Rest da drauf
* ...

hoika 15. Feb 2017 12:22

AW: PageExtControl zeichnet manchmal Labels nicht [Berlin]
 
Hallo,
wie himitsu bereits sagte
Panel auf das Tabsheet, Alignment=alClient, Ränder ausschalten
alle Komponenten auf dieses Panel verschieben

himitsu 15. Feb 2017 12:55

AW: PageExtControl zeichnet manchmal Labels nicht [Berlin]
 
Zitat:

Zitat von hoika (Beitrag 1361645)
wie himitsu bereits sagte ...

Aaaaaber

Je nach Style klappt das mit den Farben nicht so ganz.
z.B. in WinXP hat das PageControl intern ne andere Hintergrundfarbe, aber TPanel erbt die nicht, trotz ParentColor=True :stupid:

SearchBot 17. Feb 2017 17:19

AW: PageExtControl zeichnet manchmal Labels nicht [Berlin]
 
Hm...

...dann mache ich eben ein randloses Panel dazwischen. Ist dann zwar schwieriger, ans TabSheet zu kommen, aber viel schneller, als Komponenten zu debuggen...

Hatte gehofft, jemand hätte das vielleicht schon gefixt :roll:


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