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 PageControl - TabRect setzen (https://www.delphipraxis.net/79044-pagecontrol-tabrect-setzen.html)

Balu der Bär 15. Okt 2006 13:04


PageControl - TabRect setzen
 
Nochmal wegen meinem Kampf mit dem PageControl: :roll:

Mittels
Delphi-Quellcode:
PageControl1.TabRect(0)
kann ich das TRect eines Tabreiters auslesen. Bloß wie kann ich dieses TabRect setze bzw. verändern? Im konkreten Fall geht es darum einen Tabreitern einfach etwas breiter zu machen. Ich habe keine Möglichkeit gefunden dies zu tun. :-(

P.S.: Ja ich weiß ich könnte die Caption des Tabs mit Leerzeichen auffüllen damit er breiter wird, aber das kann doch nicht die einzigste Möglichkeit sein, oder?

marabu 15. Okt 2006 13:38

Re: PageControl - TabRect setzen
 
Hallo Pierre,

die Komponente TPageControl kapselt ein windows common control. Die Tabs können fixed width (TabWidth > 0) sein oder werden automatisch (TabWidth = 0) dimensioniert. Willst du bei einem einzigen Tab die Weite verändern oder möchtest du generell breitere Tabs haben?

Grüße vom marabu

Balu der Bär 15. Okt 2006 13:56

Re: PageControl - TabRect setzen
 
Moin marabu,

alle Tabs sollen etwas breiter werden.

Edit: TabWidth kann ich aber nicht nehmen, da die Größe jedes Tabreiters unterschiedlich ist. Siehe: hier,
ich möchte jeden Tab ein paar Pixel breiter machen um noch den Button daneben platzieren zu können.

:gruebel:

marabu 15. Okt 2006 17:36

Re: PageControl - TabRect setzen
 
Hallo Pierre,

inzwischen habe ich deinen anderen thread auch entdeckt und weiß um was es geht. Das tab control, welches von TPageControl gekapselt wird, ist noch nicht der große Wurf. Du kannst zwar auf OwnerDraw = True umschalten, aber damit werden fixed size tabs vorgeschrieben. Willst du varying size tabs, so wird die tab size alleine durch das optionale Icon und die Caption festgelegt. WM_MEASUREITEM wird leider nur bei TCS_OWNERDRAWFIXED verschickt und dann auch nur einmal - wegen fixed size.

Eine feste Anzahl spaces in der Caption ist wohl derzeit der einzige funktionierende Weg, um mehr Platz für die tab captions zu reservieren. Der Button, den du am rechten Rand einzeichnest, wird aber sicher ständig übermalt, wenn die Caption neu gezeichnet wird.

BTW: Zwei Icons pro Tab finde ich nicht so prickelnd. Du könntest den Button als nachgestelltes Icon festlegen.

Grüße

Balu der Bär 15. Okt 2006 17:41

Re: PageControl - TabRect setzen
 
Moin marabu,

ok danke für deine Mühe. :-)

Zitat:

BTW: Zwei Icons pro Tab finde ich nicht so prickelnd. Du könntest den Button als nachgestelltes Icon festlegen.
Was genau meinst du mit zwei Icons pro Tab? :gruebel:

marabu 15. Okt 2006 18:18

Re: PageControl - TabRect setzen
 
Ich hatte dieses Bild (tabbed browser) vor Augen - links FavIcon und rechts CloseButton.

Balu der Bär 15. Okt 2006 18:24

Re: PageControl - TabRect setzen
 
Nein marabu, bei mir sieht das z.B. so aus: http://www.delphipraxis.net/download.php?id=22754

;)


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