Używam Delphi XE3.
Kiedy tworzę nowy projekt VCL i upuszczam na nim TToolbar
, wszystko działa poprawnie - z wyjątkiem sytuacji, gdy aktywuję Form1.DoubleBuffered
.
Od tego momentu rysowanie paska narzędzi jest przerywane - w wyznaczonym czasie jest albo czarne, przezroczyste, albo części IDE (pasek stanu, pasek narzędzi itp.) Są do niego kopiowane. Zmienia się pomiędzy tymi opcjami, gdy je klikam i kiedy zmieniam kod źródłowy (F12) iz powrotem.
W środowisku wykonawczym zawsze jest czarny.TToolbar niekompatybilny z TForm.DoubleBuffered?
Z DrawingStyle=dsGradient
wszystko działa zgodnie z oczekiwaniami. Przełączenie z powrotem na dsNormal
powoduje ponowne zerwanie.
Deaktywowanie Form1.DoubleBuffered
naprawy.
Jakieś wskazówki, jak obejść ten problem?
Zobacz ['Kiedy nie używać DoubleBuffered'] (http://chee-yang.blogspot.se/2010/02/when-not-to-use-doublebuffered.html). Obejście polega na umieszczeniu 'TToolBar' na' TPanel'. –
Dziękuję LU RD - działa idealnie. Jeśli opublikujesz to jako odpowiedź, oznaczę to jako rozwiązane. – Pharaoh
Możesz też wypełnić prostokąt klienta paska narzędzi w zdarzeniu 'OnAdvancedCustomDraw' na etapie rysowania' cdPrePaint' (ale raczej ['dirty workaround'] (http://pastebin.com/b9yXE5Su)). – TLama