2010-09-28 31 views
5

alt textTại sao Delphi 2010 Tribbon kiểm soát "nhấp nháy" trên Windows XP, nhưng không phải Vista/7?

Tôi nhận thấy rằng khi tôi sử dụng điều khiển TRibbon đi kèm với Delphi 2010, nó hoạt động hoàn hảo trên hệ thống Windows 7 của tôi. Tuy nhiên, ứng dụng có một số vấn đề bức tranh kỳ lạ trên một hệ thống Windows XP với "chủ đề cổ điển" (tôi chưa thử chủ đề playchool).

Tôi biết có các thành phần Ribbon khác có sẵn từ DevExpressTMS Software, tuy nhiên việc mua quyền kiểm soát của bên thứ 3 không phải là tùy chọn cho dự án này.

Có ai gặp sự cố này hoặc biết giải pháp không?

+2

Tôi nhận được cùng với chủ đề "playschool" cũng như – Nat

Trả lời

4

Rất có thể vì Windows 7 sử dụng "Phối hợp máy tính để bàn", về cơ bản có nghĩa là một thành phần được vẽ thành bitmap ngoài màn hình và sau đó được sao chép vào màn hình. Trong XP, một thành phần thường vẽ trực tiếp lên màn hình (điều này có thể gây nhấp nháy nếu thành phần này lần đầu tiên xóa những gì ở đó và vẽ lên "đá phiến sạch").

Delphi hỗ trợ đệm đôi, hoàn thành cùng một điều. Nếu bạn thiết lập thuộc tính DoubleBuffered của ribbon thành True (trong mã, vì nó không được xuất bản) thì nên tránh nhấp nháy (với chi phí bộ nhớ bổ sung được phân bổ và di chuyển xung quanh khi vẽ) - Tuy nhiên, tôi nên nói rằng t thực sự đã thử nó với TRibbon.

Lưu ý rằng không có phí bổ sung khi chạy trên Windows 7 (hoặc Vista, cho vấn đề đó) nếu bạn đặt DoubleBuffered thành True. VCL có mã bỏ qua việc kinh doanh bitmap ngoài màn hình khi chạy trên một phiên bản Windows mà không hợp nhất máy tính để bàn.

+0

Câu trả lời hay và đặc biệt đánh giá cao lưu ý về không có chi phí nào để tăng gấp đôi. – MarkF

0

Rất có thể đây là lỗi trong mã TRibbon, ruy-băng Microsoft hiển thị hoàn hảo trong cả XP và Win7.

Nếu bạn thay đổi chủ đề XP, nút Thu nhỏ có hiển thị trong thay đổi hình ảnh để phản ánh thay đổi chủ đề của bạn không? Nếu đây là trường hợp, mã Ribbon có thể đã được tối ưu hóa cho Vista và 7 và không được phát triển để chạy hoàn toàn dưới XP.

Bạn không thể giải quyết nó trừ khi bạn có thể sửa đổi mã TRibbon.

Các vấn đề liên quan