Я использую Delphi XE3.
Когда я создаю новый проект VCL и добавляю в него TToolbar
, все работает нормально, за исключением случаев, когда я активирую Form1.DoubleBuffered
.
С этого момента отображение панели инструментов прерывается - во время разработки , он либо черный, прозрачный, либо в него копируются части IDE (статусбар, тулбар и т.д.). Он переключается между этими параметрами, когда я нажимаю на него, и когда я переключаюсь на исходный код (F12) и обратно.
Во время выполнения он всегда черный.
С DrawingStyle=dsGradient
все работает как положено. Переключение обратно на dsNormal
снова ломает его.
Деактивация Form1.DoubleBuffered
восстанавливает его.
Любые подсказки, как обойти эту проблему?
When not to use DoubleBuffered
. Обходной путь здесь состоит в том, чтобы поместитьTToolBar
вTPanel
. - person LU RD   schedule 25.03.2013OnAdvancedCustomDraw
на этапе рисованияcdPrePaint
(хотя это довольноdirty workaround
). - person TLama   schedule 25.03.2013DoubleBuffered
для устранения мерцания компонентов VCL, но дляTPaintBox
, который рисует диаграмму (с взаимодействием с пользователем, таким как масштабирование и перетаскивание). Я знаю, что мог бы использоватьTBitmap
(илиTImage
), но пока работаетForm.Doublebuffered
(и никаких других проблем не возникает), я предпочитаю решение с одним щелчком мыши. - person Pharaoh   schedule 25.03.2013