Tôi đang sử dụng Delphi XE3.
Khi tôi tạo một dự án VCL mới và thả một TToolbar
vào nó, mọi thứ hoạt động tốt - ngoại trừ khi tôi kích hoạt Form1.DoubleBuffered
.
Từ thời điểm đó, bản vẽ của thanh công cụ bị hỏng - trong thời gian chờ, màu đen, trong suốt hoặc một phần của IDE (thanh trạng thái, thanh công cụ, v.v.) được sao chép vào đó. Nó thay đổi giữa các tùy chọn này khi tôi nhấp vào nó và khi tôi đổi thành mã nguồn (F12) và ngược lại.
Trong thời gian chạy, nó luôn có màu đen.TToolbar không tương thích với TForm.DoubleBuffered?
Với DrawingStyle=dsGradient
, mọi thứ hoạt động như mong đợi. Chuyển trở lại để dsNormal
ngắt kết nối lại.
Hủy kích hoạt Form1.DoubleBuffered
sửa chữa.
Bất kỳ gợi ý nào về cách khắc phục sự cố đó?
Xem ['Khi không sử dụng DoubleBuffered'] (http://chee-yang.blogspot.se/2010/02/when-not-to-use-doublebuffered.html). Cách giải quyết ở đây là đặt 'TToolBar' trên' TPanel'. –
Cảm ơn LU RD - hoạt động hoàn hảo. Nếu bạn đăng câu trả lời này, tôi sẽ đánh dấu câu trả lời là đã được giải quyết. – Pharaoh
Hoặc bạn có thể điền vào hình chữ nhật của khách hàng của thanh công cụ trong sự kiện 'OnAdvancedCustomDraw' ở giai đoạn vẽ' cdPrePaint' (khá là ['workaround'] (http://pastebin.com/b9yXE5Su) mặc dù). – TLama