2015-05-23 14 views
7

Come è possibile realizzare icone di sovrapposizione in Delphi IDE come questo:Overlay Icone in Delphi IDE

  • nelle schede file del redattore;
  • nell'albero del Project Manager;
  • nel menu popup di Project Manager?

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

risposta

2

recente ho giocato in giro con il menu contestuale del Project Manager e il menu contestuale (TPopupMenu) non dispone di un TCustomImageList assegnato ad esso.

Quindi per ottenere immagini nel menu di scelta rapida, sarà necessario assegnare un TCustomImageList (TImageList) ad esso. Quello che ho fatto è crearne uno con lo stesso proprietario del componente TPopupMenu.

Per gli altri, so molto poco:

  • albero del Project Manager è un virtual tree view, quindi potrebbe vale la pena giocare intorno con esso in un'applicazione per vedere cosa si può fare.

  • Le schede di editor sono un componente personalizzato, quindi è necessario un aggancio di livello basso. Dai un'occhiata a come il Delphi IDE Colorizer gestisce le schede personalizzate; questo potrebbe aiutare con i ganci.

Plea: Dal momento che questo sta giocando in giro con le parti interne della IDE, si prega di non assumere sei la prima persona lì e ricominciare a scrivere il lavoro di tutti gli altri.

Edit: C'è un articolo su EDN Extending the Project Manager Context menu

+0

OK, ho trovato oggetto albero del Project Manager. Il suo nome ProjectTree2. Ma ora non capisco come determinare il percorso completo dei nodi Unit1.pas o Unit1.dfm? –

+0

Poiché la dimensione dei dati del nodo è 20 byte (XE7), sospetto che sia necessario decodificare il layout dei dati del nodo per vedere se il nome del file è contenuto al suo interno. –

+0

Chi può aiutare con la definizione della struttura Node.Data di ProjectTree2? –