2009-09-13 13 views
5

Ho provato molti metodi associati a RibbonApplicationMenuBar per impedire a un utente di selezionare RibbonApplicationMenuBar con un mouse finché le impostazioni dei progetti non vengono caricate da un inifile e una splashform si chiude. Ma nulla sembra funzionare per rendere RibbonApplicationMenuBar InActive fino a quando non viene indicato diversamente.Come rendere RibbonApplicationMenuBar inattivo/attivo?

Il file della guida non mostra nulla su molte proprietà di RibbonApplicationMenuBar e l'aiuto Wiki lo stesso, quindi non sono in grado di risolverlo.

procedure TMainForm.FormCreate(Sender: TObject); 
begin 
    // make theRibbonApplicationMenuBar1 inactive 
    RibbonApplicationMenuBar1.Enabled := False; 
    RibbonApplicationMenuBar1.Inactive := True; 
    RibbonApplicationMenuBar1.Hide; 
    RibbonApplicationMenuBar1.AutoFocus := False; 
    // read application settings 
    ReadIni(AIniFileFilename); 
    // show a splash form 
    FormSplash := TFormSplash.Create(MainForm); 
    // FormSplash.Parent := MainForm; 
    FormSplash.Position := poOwnerFormCenter; 
    FormSplash.Show; 
    FormSplash.Update; 
end; 


procedure TMainForm.FormShow(Sender: TObject); 
begin 
    // close the splash form 
    FormSplash.RequestClose; 
    // Activate the RibbonApplicationMenuBar 
    RibbonApplicationMenuBar1.Enabled := True; 
    RibbonApplicationMenuBar1.Inactive := False; 
    if RibbonApplicationMenuBar1.CanFocus then 
    RibbonApplicationMenuBar1.SetFocus; 
    RibbonApplicationMenuBar1.AutoFocus := True; 
    RibbonApplicationMenuBar1.SelectApplicationButton; 
    RibbonApplicationMenuBar1.Show; 
end; 

A meno che il RibbonApplicationMenuBar è inattivo l'utente può selezionare il RibbonApplicationMenuBar prima che sia pronto per essere selezionato. Qualsiasi suggerimento è apprezzato. So che tutti i metodi mostrati qui non sono corretti o forse fuori uso ... è solo il mio tentativo di impedire a RibbonApplicationMenuBar di diventare attivo e selezionabile fino alla chiusura del modulo di avvio.

Grazie,

Bill

+0

Perché non mostrare lo schermo di avvio in modo modale? Ciò impedirà qualsiasi interazione con qualsiasi altra forma. –

+0

La barra multifunzione delle applicazioni Microsoft non diventa attiva fino a quando l'applicazione non è completamente caricata ... sto solo cercando di duplicarlo. Non voglio una schermata iniziale modale. –

+0

Non sto utilizzando la barra multifunzione di Delphi, ma per quanto riguarda il collegamento degli elementi del nastro alle azioni. Quindi puoi semplicemente abilitare/disabilitare l'azione o persino nasconderla. Sono d'accordo che l'interfaccia utente della barra multifunzione non dovrebbe comportarsi in questo modo. – Mihaela

risposta

0

È sufficiente impostare TRibbon.Enabled su False per disabilitare tutte le azioni Ribbon (testato con XE3). Il modo più semplice è impostato Falso in fase di progettazione. Ad esempio, impostalo su True da OnHide del tuo splash form. Chiudi splash solo quando tutte le attività in background sono completate.