![]() |
Auf ToolButton zeichnen
Hallo,
ich habe eine Komponente von TToolBar abgeleitet. Funktioniert soweit alles ganz gut, aber ich möchte auf dem ersten ToolButton der erstellt wird ein kleines Dreieck zeichnen. TToolButton hat zwar eine Canvas-property vom TGraphicControl, aber leider protected, sodass ich nicht darauf zugreiffen kann. Weiß jemand einen Ausweg? Danke, Reddog. |
Re: Auf ToolButton zeichnen
Dann leide halt auch noch die TToolbutton, um eine TToolbuttonMitKleinenDreieck-Klasse ab.
Oder verkleiner deiner Toolbar-Klasse die Child-Area, so das sie Toolbuttons nicht gleich ganz links anliegen. Dann solltest Du auf dem Toolbar-Canvas zeichnen können. |
Re: Auf ToolButton zeichnen
Ich hab ja probiert von TToolButton ne eigene Klasse abzuleiten. Aber wie kann ich die Komponente dazu veranlassen ihre ToolButtons statt als TToolButton als TToolButtonMitDreieck zu erstellen?
Das wäre natürlich die beste Lösung, wenn's irgendwie geht. |
Re: Auf ToolButton zeichnen
Du wirst dafür sehr viel mehr Funktionen von TToolbar überschreiben müssen. Überall wo TToolbar ein TToolButton erzeugt musst Du stattdessen ein TMyToolButton erzeugen. Ist jedoch nicht gerade trivial (Sine nicht gerade kurze Funktionen in ComCtrls.pas, welche Du überschreiben müsstest).
|
Re: Auf ToolButton zeichnen
Das ist ja auch der Grund, warum ich hier diese Frage gestellt habe.
Ich hab mir TToolBar angeschaut, und ich find nicht mal die Funktion, wo es die ToolButtons erzeugt. Das ist irgendwie sehr durcheinander. Ich hab mal ein TreeView verändert, und da war das perfekt einfach gemacht, man musste nur an einer Stelle in einer Funktion den Typ der erzeugten Kinder verändern. Tja mir ist bis jetzt nichts besseres eingefallen als:
Delphi-Quellcode:
Dann verwende ich dieses Canvas um zu zeichnen. Es klappt, aber ich weiß nicht, ob das jetzt korrekt ist und keine Probleme verursacht. Und dann habe ich noch ein Problem damit, wann es das Dreieck draufzeichnen soll, weil ich irgendwie kein passendes Ereignis finde. Und eine procedur mit message WM_PAINT für die Komponente(abgeleitet von TToolBar) macht bei mir seltsamerweise einen Fehler. Naja, so sieht's aus.
var
MyCanvas: TControlCanvas; begin MyCanvas:= TControlCanvas.Create; MyCanvas.Control:= ToolButton; // auf dem ich zeichnen will Aber trotzdem danke für die Antwort. Reddog. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz