2015-05-23 14 views
7

Làm thế nào để bạn thực hiện biểu tượng che phủ trong Delphi IDE như thế này:Overlay Các biểu tượng trong Delphi IDE

  • trên các tập tin biên tập viên của các tab;
  • trên cây Project Manager của;
  • trên popup menu Project Manager không?

Screenshot of Mercurial icon in the right-click menu on a file in the Project Manager

Trả lời

2

Gần đây tôi đã được chơi đùa với menu ngữ cảnh Manager của dự án và trình đơn ngữ cảnh (TPopupMenu) không có một TCustomImageList gán cho nó.

Vì vậy, để tải hình ảnh trên menu ngữ cảnh, bạn cần phải chỉ định một TCustomImageList (TImageList) cho nó. Những gì tôi đã làm là tạo một cái có cùng chủ sở hữu với thành phần TPopupMenu.

Đối với những người khác, tôi biết rất ít:

  • cây Manager của Dự án là một virtual tree view, vì vậy nó có thể đáng chơi đùa với nó trong một ứng dụng để xem những gì có thể được thực hiện.

  • Các tab biên tập là một thành phần tùy chỉnh, vì vậy một số mức hooking thấp có thể được yêu cầu. Hãy xem cách Delphi IDE Colorizer xử lý các tab tùy chỉnh; có thể giúp với móc.

Plea: Vì điều này đang chơi với nội bộ của IDE, xin đừng cho rằng bạn là người đầu tiên ở đó và bắt đầu viết công việc của người khác.

Sửa: Có một bài báo EDN trên Extending the Project Manager Context menu

+0

OK, tôi thấy đối tượng cây Manager của dự án. Tên của nó là ProjectTree2. Nhưng bây giờ tôi không hiểu cách xác định đường dẫn đầy đủ của các nút Unit1.pas hoặc Unit1.dfm? –

+0

Kể từ khi kích thước dữ liệu nút của họ là 20 byte (XE7), tôi nghi ngờ rằng bạn cần phải thiết kế đối chiếu cách bố trí dữ liệu nút để xem nếu tên tập tin được chứa bên trong nó. –

+0

Ai có thể giúp định nghĩa cấu trúc Node.Data của ProjectTree2? –

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