2013-02-14 34 views
5

Tôi đang cố gắng để tạo ra một menu ứng dụng và thanh công cụ trong Delphi XE3 trông giống như sau (từ một chương trình tôi có):Delphi: Theo kiểu TMainMenu và TToolBar trong TCoolBar

Main menu and toolbar in TCoolBar

Tôi có khả năng tái tạo một phần của cái nhìn này bằng cách làm như sau:

  1. Tạo một VCL mới Forms ứng dụng
  2. Thêm một TMainMenu và chèn menu mẫu cho file/chỉnh sửa/etc.
  3. Thêm một TCoolBar mẫu
  4. Thêm một TToolBar đến TCoolBar
  5. Thêm một TToolButton đến TToolBar cho mỗi File/Chỉnh sửa/etc. và chọn thuộc tính Nhóm
  6. Xóa thuộc tính Trình đơn khỏi biểu mẫu (do đó không có trình đơn chương trình nào hiển thị)
  7. Chỉ định thuộc tính MenuItem cho mỗi TToolButton cho Tệp/Chỉnh sửa tương ứng/v.v.
  8. Thêm một giây TToolBar đến TCoolBar dưới đầu tiên một

Đây là những gì nó trông giống như:

My main menu and toolbar in TCoolBar

Đó là phần nào tương tự nhưng vẫn còn thiếu tất cả các yếu tố phong cách để thay đổi giao diện của menu ứng dụng mới.

Câu hỏi của tôi là, có ai biết cách đạt được một cái nhìn tương tự, có lẽ với thư viện thành phần của bên thứ ba không? Dường như nhà phát triển ban đầu đã sử dụng thư viện VCL của bên thứ ba. Tôi muốn bóng đổ ngoài các menu theo kiểu và TCoolBar.

Tôi đã thử thành phần Raize, Thanh công cụ nâng cao TMS & Menu và đang trong quá trình thử các thành phần DevExpress VCL. Không ai trong số họ dường như cung cấp một giải pháp, nhưng có lẽ tôi không đủ quen thuộc với họ để tìm ra nó.

+3

Bạn đã cố gắng sử dụng 'TActionMainMenuBar' chưa? –

+4

+1 @Sertac. [Ở đây] (http://stackoverflow.com/questions/11963441/tmainmenu-is-not-shown-when-the-vcl-styles-is-removed-from-the-nc-area) RRUZ cũng khuyến cáo sử dụng ' TActionMainMenuBar' thay vì 'TMainMenu', và tôi sẽ tin tưởng bất cứ điều gì anh chàng này nói về phong cách VCL. – kobik

+2

@kobik - Sử dụng thú vị trong câu hỏi bạn liên kết ... Thật vậy, phong cách có thể là do anh ta ân huệ bất cứ điều gì nó nhận được từ các nhà phát triển (không chắc chắn nếu đây là tiếng Anh, có nghĩa là một lời khen :)). –

Trả lời

5

Delphi đã đi kèm với bản trình diễn ActionBands có thể cho bạn biết cách lấy giao diện này "ngoài hộp" cho các menu của mình bằng cách sử dụng TActionMainMenuBar (và TActionToolBar). Chỉ cần thay đổi Style menu để XP Style trong bản demo:

ActionBands demo

Phần còn lại của các bước của bạn có vẻ khá tốt hoàn toàn. Đối với hình ảnh trên các mục menu và các nút trên thanh công cụ, hãy xem việc sử dụng các thành phần ImageList liên quan đến TActions trên menu và thanh công cụ trong bản trình diễn.

+0

Cảm ơn, đây chỉ là những gì tôi cần. Một vấn đề mặc dù - ứng dụng mẫu của tôi không hiển thị bóng đổ trên menu giống như của bạn, ngay cả khi tôi chọn "Menu Shadows" từ danh sách sau khi biên dịch và chạy. 'TActionMainMenuBar' đã có thuộc tính Shadows được đặt theo mặc định. – spurgeon

+0

Đó * là * lạ. Tôi đã chụp màn hình từ một ví dụ đang chạy của ứng dụng đó (Win7 64, chạy từ IDE XE3, vừa được xây dựng). Bạn đang chạy hệ điều hành nào? –

+0

Thậm chí thú vị hơn nữa, từ tài liệu 'Vcl.ActnMenus.TActionMainMenuBar.Shadows':" Người dùng có thể tắt bóng thông qua hệ điều hành, trong trường hợp thiết lập Shadows bị bỏ qua. " Trong máy ảo Windows 7 khác của tôi, nó cho thấy bóng tối. Vì vậy, bằng cách nào đó trong máy ảo phát triển của tôi, tôi đã tắt bóng. Đối với nơi mà tài sản được lưu trữ bởi hệ điều hành, tôi không có ý tưởng. – spurgeon