Ich verwende Delphi XE3.
Wenn ich ein neues VCL-Projekt erstellen und eine TToolbar
darauf ablegen, funktioniert alles gut - außer, wenn ich Form1.DoubleBuffered
aktivieren.
Von diesem Moment an ist das Zeichnen der Werkzeugleiste abgebrochen, es ist entweder schwarz, transparent oder Teile der IDE (Statusleiste, Werkzeugleiste, etc.) werden in sie kopiert. Es wechselt zwischen diesen Optionen, wenn ich darauf klicke und wenn ich zum Quellcode (F12) und zurück wechsele.
In Laufzeit ist es immer schwarz.TToolbar inkompatibel mit TForm.DoubleBuffered?
Mit DrawingStyle=dsGradient
funktioniert alles wie erwartet. Zurückschalten auf dsNormal
bricht es wieder.
Deaktivieren Form1.DoubleBuffered
repariert es.
Gibt es Hinweise, wie Sie dieses Problem umgehen können?
Siehe ['Wann nicht DoubleBuffered' zu verwenden ist] (http://chee-yang.blogspot.se/2010/02/when-not-to-use-doublebuffered.html). Umgehung hier ist, die 'TToolBar' auf ein' TPanel' zu setzen. –
Danke LU RD - funktioniert perfekt. Wenn du dies als Antwort postest, werde ich es als gelöst markieren. – Pharaoh
Oder füllen Sie das Client-Rechteck der Werkzeugleiste im 'OnAdvancedCustomDraw' -Ereignis auf der' cdPrePaint'-Zeichenstufe (ein ziemlich "schmutziger Workaround") (http://pastebin.com/b9yXE5Su)). – TLama