2009-09-13 12 views
5

He intentado muchos métodos asociados con RibbonApplicationMenuBar para evitar que un usuario seleccione RibbonApplicationMenuBar con un mouse hasta que la configuración del proyecto se cargue desde un archivo y se cierre una splashform. Pero nada parece funcionar para hacer que RibbonApplicationMenuBar Inactive hasta que se indique lo contrario.¿Cómo hacer que RibbonApplicationMenuBar esté inactivo/activo?

El archivo de ayuda no muestra nada acerca de muchas de las propiedades de RibbonApplicationMenuBar y la Wiki de ayuda es la misma, por lo que no puedo resolver esto.

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 menos que el RibbonApplicationMenuBar está inactivo, el usuario puede seleccionar el RibbonApplicationMenuBar antes de que esté listo para ser seleccionado. Cualquier sugerencia es apreciada Sé que todos los métodos que se muestran aquí no son correctos o posiblemente no funcionan ... es solo mi intento de evitar que RibbonApplicationMenuBar se active y se pueda hacer clic hasta que se cierre el formulario de bienvenida.

Gracias,

Bill

+0

¿Por qué no se muestra la pantalla de bienvenida de forma modal? Eso evitará cualquier interacción con cualquier otra forma. –

+0

La barra de herramientas de las aplicaciones de Microsoft no se activa hasta que la aplicación esté completamente cargada ... solo intento duplicar eso. No quiero una pantalla de presentación modal. –

+0

No estoy usando la cinta de Delphi, pero ¿qué pasa con vincular elementos de cinta a las acciones. Luego puede habilitar/deshabilitar la acción, o incluso ocultarla. Estoy de acuerdo en que la interfaz de usuario de la cinta no debe comportarse de esa manera. – Mihaela

Respuesta

0

Es suficiente para establecer TRibbon.Enabled en False para desactivar todas las acciones de la cinta (probado con XE3). La manera más fácil es establecerlo Falso en tiempo de diseño. Ajústelo True por ejemplo desde OnHide de su formulario de bienvenida. Cierre el splash solo cuando todas las actividades en segundo plano hayan finalizado.

Cuestiones relacionadas