2013-07-16 34 views
7

Tôi đã áp dụng một phong cách cho một ứng dụng VCL trong Delphi XE2, nhưng nó hoạt động OK, nhưng có vẻ như menu chính đã bỏ qua phong cách. Xem hình ảnh đính kèm. Đây có phải là hành vi bình thường không? enter image description hereDelphi XE2 Kiểu: Menu chính Bỏ qua

Bất kỳ lời khuyên nào về cách áp dụng kiểu cho menu chính?

+3

Xem [ 'comment' này] (http://theroadtodelphi.wordpress.com/2012/03/06/adding-vcl-styles-support-to-a-tpopupmenu-in-2- line-of-code/# comment-1756). Rodrigo đề nghị sử dụng 'TActionMainMenuBar' thay vì' TMainMenu'. Nhưng anh ta sẽ sớm hay muộn ở đây với câu trả lời, tôi muốn nói :-) – TLama

Trả lời

10

Đây là giới hạn của móc kiểu Vcl TMainMenuBarStyleHook. Cách tiếp cận bình thường để khắc phục loại vấn đề này là tạo và đăng ký móc kiểu mới TMainMenu, nhưng tiếc là móc kiểu Vcl này được sử dụng trong nội bộ bởi TFormStyleHook (móc kiểu vcl của biểu mẫu), do đó, điều này sẽ yêu cầu bạn tạo biểu mẫu mới phong cách móc là tốt và điều này ngụ ý rất nhiều công việc.

Vì vậy đề xuất của tôi là thay thế TMainMenu thành phần TActionMainMenuBar hoạt động rất tốt với các kiểu vcl.

enter image description here

+0

có lẽ bạn có thể sử dụng vá trong bộ nhớ thay vì tạo lại móc hình thức từ đầu? –

+1

Trong trường hợp cụ thể này, việc vá phương thức trong bộ nhớ bằng cách sử dụng đường vòng sẽ yêu cầu một nỗ lực tương tự hơn việc viết Dấu kiểu Vcl từ đầu. – RRUZ

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