2012-01-07 14 views
10

Mi piacerebbe avere un'opzione dalla mia applicazione per attivare la visualizzazione del menu principale.Nascondi TActionMainMenuBar?

Le funzionalità possono ancora essere utilizzate tramite la barra degli strumenti, ecc. Nascondere il menu non servirà a nulla. Nascondere il menu è davvero una scelta GUI per l'utente.

In ogni caso il mio menu principale è configurato utilizzando TActionMenuBar e TActionManager (per lo stile XP alphablend).

Ho provato semplicemente a impostare la proprietà Visible del MainMenuBar che ha provocato questo messaggio di errore: "ActionMainMenuBar non consente di nascondere".

Ho pensato che fosse un po 'strano, dando il fatto che la proprietà Visibile esiste. Perché dovrebbe essere lì, se non posso davvero cambiarlo?

Così come al solito mi aspettavo che si trattasse di un semplice caso di modifica di un'impostazione e di voilà, ma non credo che questo possa richiedere più lavoro, non saprei nemmeno da dove cominciare o cosa cercare.

Apprezzo le tue idee e suggerimenti grazie.

+0

Questa è una buona domanda. Ti suggerisco di scavare nel codice sorgente del VCL per TActionMenuBar. –

+0

Grazie Warren, darò un'occhiata. Sono interessato a capire perché esiste una proprietà Visible, soprattutto se non può essere effettivamente utilizzata. –

+0

@Craig - Ho risposto alla tua domanda, non hai bisogno di smanettare con le fonti ecc. –

risposta

8

È necessario impostare su "true" prima di impostare Visible su "false".

+0

Grazie per aver segnalato AllowHiding, non l'ho visto. Non vedo perché ci dovrebbe essere una necessità per la proprietà AllowHiding, ma potrebbe essere semplicemente legato alla proprietà Visible. –

+3

@Craig: la proprietà è presente nel caso in cui gli utenti siano in grado di personalizzare le barre degli strumenti. Si potrebbe desiderare che gli utenti siano in grado di nascondere le barre degli strumenti ma non la barra dei menu. –

+0

Oh capisco, allora immagino che abbia senso! Grazie Sertac, apprezza il tuo aiuto. –

0

Il menu è in genere associato al modulo principale, pertanto l'impostazione Form1.Menu: = nil la nasconde e Form1.Menu: = MainMenu lo mostrerà.

+3

No, non è possibile impostare un ActionMainMenuBar attraverso la proprietà Menu di un modulo. –