Color von Tab in PageControl
-
Hallo,
ichhabe ein PageControl (InfoControl) und will dieses andersfarbig darstellen:
for (int i = 0; i < InfoControl->PageCount; i++) { InfoControl->Pages[i]->Brush->Color = clWhite; }Das klappt auch soweit. Leider sind die Tabs noch im Windows grau.
Weiß jemsnd wie ich auf den Brush der Tabs zugreifen kann, oder wie ich sonst die Tabs einfärben kann?Danke!
-
Siehe TPageControl:OnDrawTab.
-
Das Ereignis OnDrawTab tritt ein, wenn ein Register gerade gezeichnet wird.
__property TDrawTabEvent OnDrawTab = {read=FOnDrawTab, write=FOnDrawTab};
Beschreibung
Mit OnDrawTab passen die das Zeichnen der Register an.
Sie können das Register mit Hilfe der Eigenschaft Canvas füllen.
Leider sagt mir das garnix :(, bzw. das ich en Brush brauche (weil da Canvas drinne ist ), aber das wußte ich auch schon vorher.
Oder was meinst Du?
-
Hilft das?
http://www.c-plusplus.net/forum/viewtopic-var-t-is-98188-and-highlight-is-tpagecontrol.html
-
Weiß nicht, ob dir folgendes reicht:
void __fastcall TForm1::PageControl1DrawTab(TCustomTabControl *Control, int TabIndex, const TRect &Rect, bool Active) { for (int i = 0; i < PageControl1->PageCount; i++) { PageControl1->Pages[i]->Brush->Color = clRed; } Control->Canvas->Brush->Color = clRed; Control->Canvas->Brush->Style = bsSolid; Control->Canvas->FillRect(Rect); }Und nicht vergessen:
PageControl1->OwnerDraw = true;
-
Ja, die Tabs werden jetzt in einer anderen Farbe gezeichnet

Ich hatte ich den Tabs Grafiken zugewiesen die jetzt nicht mehr dargstellt werden.
Weiß jemand wie ich auch die Grafiken anzeigen lassen kann?
Danke!
-
Wenn du anfängst, von Hand zu zeichnen dann bist du für alles selbst zuständig. Wenn du also Grafiken haben willst dann must du die auch reinzeichnen.
-
Danke!
habe jetzt noch folgendes in DrawTab eingebaut, damit gehts:ImageList32->Draw(Control->Canvas, Rect.left +4 , Rect.Top+2,InfoControl->Pages[TabIndex]->ImageIndex, true);