TabControls Design verändern
-
Ich habe noch nicht viel mit Komponenten hinter den Kulissen gearbeitet, doch habe ich mir mittlerweile schonmal das Tutorial von AndreasW durchgelesen, doch ist das nicht unbedingt für meine Problemlösung geeignet (deswegen ist es trotzdem gut!).
Ihr wisst, wie die TabControls aussehen, so 3D (oder aber auch in einem Flatstyle, der mir jedoch nicht gefällt)! Ich würde das Design dieser TabControls gerne der ".Net"-Form anpassen, also flach (wer einen genauen Screenshot anfordern möchte, bitte nachfragen; ich sende es dann zu). Dabei möchte ich allerdings unbedingt die gesamte Komponente ansich unverändert lassen, was nicht das Design betrifft. (Ich habe nämlich schon einige flat-styled TabControls gefunden, die aber dann einige Eigenschaften und Methoden völlig verändert und damit in der ursprüglichen Art unbrauchbar machen)
Ich würde mich sehr freuen, wenn ein Forenteilnehmen da Interesse zeigt und mir in irgendeiner Form bei der Umsetzung ins mein "Lieblingsdesign" behilflich ist. (Wie gesagt, Screenshot einfach anfordern)
-
Warum zeichnest du nicht einfach ein bitmap für jetztes tab und zeichnest die dann mit canvas drauf?
-
Hi!
Die Idee gefällt mir sehr gut und lässt mich hoffen. Ich würde dich bitten, für TTabControl das ganze mit einem Beispielprojekt zu zeigen. Ich stelle mir das so vor (da ich aber noch nie mit Canvas gearbeitet habe, fällt mir das ganzer hier schwer...): Eine ImageList mit zwei Grafiken, einmal für das aktive und einmal für das inaktive Tab. OwnerDraw vom TabControl1 auf true stellen. Und was muss jetzt im OnOwnderDrawEvent stehen, damit das aktive Tab mit dem entsprechenden Bild aus der ImageList gezeichnet wird und die anderen nicht aktiven eben mit dem anderen Bild!?
(Achja: Kann ich auch meine Grafiken zum Beispiel 20 (Breite) x5 (Höhe) in der Größe machen, dass dann auch die Tabs entsprechende groß wie die Grafiken dargestellt sind...)
Ich hoffe, du / ihr könnt helfen bzw. hoffe ich auch, alles gut genug formuliert zu haben!
-
Tillmann?
-
Die IDee ist mal nicht schlecht. Du bist auf dem richtigen Weg. Schau dir doch einfach mal die Ereignisse an. Irgendwo hats ein OnTabDraw. Die Parameter da sind ganz interessant. Spiel mal etwas damit rum. Wenn du verständnisprobleme hast, frag ungeniert nach.
-junix
-
Hi,
wenn du ne Komponente bastel möchtest, so überschreibe:
virtual void __fastcall DrawTab(int TabIndex, const Types::TRect &Rect, bool Active);
[ Dieser Beitrag wurde am 13.01.2003 um 08:07 Uhr von AndreasW editiert. ]