2010-02-07 15 views

Respuesta

7

Esto debería funcionar:

Wizardform.NextButton.Enabled := False; 

Para más información echa un vistazo a los grupos de noticias InnoSetup:
http://www.jrsoftware.org/newsgroups.php

+0

Lo comprobé, no funciona. – Sasha

+0

¿En qué tipo de evento lo está usando? CurPageChanged? – Zyphrax

+0

esto debería funcionar. ¿Dónde usas este código? –

0

Disculpa por no poder ayudarte en tu problema particular directamente. Sin embargo, me gustaría señalar que la instalación de Inno no parece estar basada en Windows Installer, que probablemente se asegurará de que sus programas no puedan pasar los requisitos del logotipo de Windows.

Sugiero que eche un vistazo a WiX 3, que es un creador de instaladores de código abierto directamente de Microsoft, con excelente soporte de las muchas personas que lo usan y que le permite crear fácilmente paquetes regulares de Windows Installer. Deshabilitar el botón Siguiente es fácil de usar con Wix.

+0

Gracias. Lo intentaré en mi próximo proyecto ... – Sasha

+0

(Supuestamente) el requisito de MSI se ha eliminado – Anders

+0

Lo siento, ¿qué es lo que los hombres "han caído"? – Sasha

4

supongo que haya encontrado una solución a estas alturas. Como tuve el mismo problema y encontré la solución, la publico aquí con la esperanza de ayudar a otros.

Quería deshabilitar el botón CANCELAR después de que un usuario comenzó una actualización de la aplicación. Utilice este procedimiento:

procedure CurPageChanged(CurPageID: Integer); 
begin 
    // always disable the cancel button; no going back now!!! 
    if UpgradeInstallationMode then 
    Wizardform.CancelButton.Enabled := False; 
end; 

También otra forma de hacer manualmente esto es:

procedure DisableCancelButton(); 
begin 
    WizardForm.CancelButton.Enabled := False; 
    WizardForm.Update; 
end; 

procedure EnableCancelButton(); 
begin 
    WizardForm.CancelButton.Enabled := True; 
    WizardForm.Update; 
end; 

Otra manera sería utilizar esta [Configuración] Directiva:

[Setup] 
AllowCancelDuringInstall=yes 

Esto es muy útil para escenarios simples; Puede usar esto en lugar de los procedimientos anteriores.

+1

Diría que obligar a 'WizardForm' a repintarse (esa línea' WizardForm.Update') no es necesario, y aunque hayas respondido cómo desactivar el botón Cancelar, te daré mi voto positivo. – TLama

+0

sí, probablemente tienes razón; es solo un ** exagerado **! A veces solo uso ** doble toque ** para estar seguro! Java Swing repintada() todavía me persigue, supongo ... Aún así, si quieres usar esto fuera de 'CurPageChanged()', tienes que 'WizardForm.Update;' o el botón no se actualizará. – fubar

Cuestiones relacionadas