2013-02-14 16 views
5

sto cercando di creare un menu delle applicazioni e barra degli strumenti in Delphi XE3 che appare come il seguente (da un programma che ho):Delphi: Styled TMainMenu e TToolBar in TCoolBar

Main menu and toolbar in TCoolBar

Sono in grado di replicare una parte di questo sguardo nel modo seguente:

  1. Creare una nuova VCL I moduli di domanda
  2. Aggiungi un TMainMenu e inserire i menu template per File/Modifica/etc.
  3. Aggiungi un TCoolBar alla forma
  4. Aggiungi un TToolBar al TCoolBar
  5. Aggiungi un TToolButton al TToolBar per ciascuno dei file/Modifica/etc. e selezionare la proprietà Gruppo
  6. Eliminare la proprietà menu dal form (in modo che nessun menu del programma gli spettacoli)
  7. assegnare la proprietà MenuItem per ogni TToolButton al corrispondente file/Modifica/etc.
  8. aggiungere un secondo TToolBar al TCoolBar sotto il primo

Ecco come si presenta:

My main menu and toolbar in TCoolBar

E 'in qualche modo simile, ma manca ancora tutti gli elementi di stile per modificare l'aspetto del nuovo menu dell'applicazione.

La mia domanda è, qualcuno sa come ottenere un aspetto simile, forse con una libreria di componenti di terze parti? Sembra probabile che lo sviluppatore originale abbia utilizzato una libreria VCL di terze parti. Mi piacerebbe l'ombra esterna oltre ai menu in stile e TCoolBar.

Ho provato Raize Components, TMS Advanced Toolbars & Menu e sto cercando di provare i componenti DevExpress VCL. Nessuno di loro sembra fornire una soluzione, ma forse non ho ancora familiarità con loro per capirlo.

+3

Hai provato a usare un 'TActionMainMenuBar'? –

+4

+1 @Sertac. [Qui] (http://stackoverflow.com/questions/11963441/tmainmenu-is-not-shown-when-the-vcl-styles-is-removed-from-the-nc-area) RRUZ consiglia anche di usare ' TActionMainMenuBar' invece di 'TMainMenu', e mi fiderei di tutto ciò che questo tizio dice sugli stili VCL. – kobik

+2

@kobik - Interessante utilizzo nella domanda che hai collegato ... In effetti, gli stili potrebbero essere in lui qualunque sia la grazia che riceve dagli sviluppatori (non sono sicuro che sia inglese, inteso come un complimento :)). –

risposta

5

Delphi è dotato di una demo ActionBands che può mostrare come ottenere questo aspetto "out of the box" per i menu utilizzando TActionMainMenuBar (e TActionToolBar). Basta cambiare il menu Style-XP Style nella demo:

ActionBands demo

Il resto dei vostri passi sembrano abbastanza bene completa. Per le immagini sulle voci di menu e sui pulsanti della barra degli strumenti, vedere l'uso dei componenti ImageList in associazione con lo TActions nel menu e nella barra degli strumenti nella demo.

+0

Grazie, questo è proprio quello di cui avevo bisogno. Un problema però - la mia app di esempio non mostra un'ombra esterna sul menu come la tua, anche se seleziono "Menu Ombre" dall'elenco dopo la compilazione e l'esecuzione. 'TActionMainMenuBar' ha già la proprietà Shadows impostata di default. – spurgeon

+0

Questo * è * strano. Ho preso la cattura dello schermo da un'istanza in esecuzione di quell'app (Win7 64, eseguito dall'IDE XE3, di nuova costruzione). Su quale sistema operativo stai funzionando? –

+0

Ancora più interessante, dai documenti 'Vcl.ActnMenus.TActionMainMenuBar.Shadows':" L'utente può disabilitare le ombre attraverso il sistema operativo, nel qual caso l'impostazione Ombre viene ignorata. " Nella mia altra macchina virtuale Windows 7, mostra ombre. Quindi, in qualche modo nella mia macchina virtuale di sviluppo, ho disattivato le ombre. Per quanto riguarda dove tale proprietà è memorizzata dal sistema operativo, non ne ho idea. – spurgeon