Sto usando Delphi XE3.
Quando creo un nuovo progetto VCL e inserisco uno TToolbar
, tutto funziona correttamente, tranne quando si attiva Form1.DoubleBuffered
.
Da quel momento in poi, il disegno della barra degli strumenti è rotto - in fase di progettazione, è nero, trasparente, o parti dell'IDE (barra di stato, barra degli strumenti, ecc.) Vengono copiati in esso. Cambia tra queste opzioni quando faccio clic su di esso e quando cambio codice sorgente (F12) e ritorno.
In fase di esecuzione, è sempre nero.TToolbar incompatibile con TForm.DoubleBuffered?
Con DrawingStyle=dsGradient
, tutto funziona come previsto. Passando a dsNormal
si interrompe nuovamente.
La disattivazione di Form1.DoubleBuffered
la ripara.
Qualche suggerimento su come risolvere questo problema?
Sede [ 'Quando non usare DoubleBuffered'] (http://chee-yang.blogspot.se/2010/02/when-not-to-use-doublebuffered.html). Ecco una soluzione per mettere il 'TToolBar' su un' TPanel'. –
Grazie a LU RD: funziona perfettamente. Se pubblichi questa risposta come risposta, la contrassegnerò come risolta. – Pharaoh
Oppure si potrebbe riempire il rettangolo client della barra degli strumenti nell'evento 'OnAdvancedCustomDraw' nella fase di disegno' cdPrePaint' (piuttosto un ['sporco workaround'] (http://pastebin.com/b9yXE5Su)). – TLama