2010-02-07 6 views

Répondre

7

Cela devrait fonctionner:

Wizardform.NextButton.Enabled := False; 

Pour plus d'information, consultez les forums InnoSetup:
http://www.jrsoftware.org/newsgroups.php

+0

J'ai vérifié - cela ne fonctionne pas. – Sasha

+0

Dans quel genre d'événement l'utilisez-vous? CurPageChanged? – Zyphrax

+0

cela devrait fonctionner. Où utilisez-vous ce code? –

0

Désolé de ne pas pouvoir vous aider directement dans votre problème. Je tiens à souligner cependant que Inno Setup ne semble pas être basé sur Windows Installer, ce qui va probablement faire en sorte que vos programmes ne peuvent pas passer les exigences du logo Windows. Je suggère que vous jetez un oeil à WiX 3, qui est un créateur d'installateur open source directement de Microsoft, avec une excellente prise en charge par les nombreuses personnes qui l'utilisent et qui vous permet de créer facilement des paquets Windows Installer réguliers. Désactiver le bouton Suivant est facile en utilisant Wix.

+0

Merci. Je vais l'essayer dans mon prochain projet ... – Sasha

+0

(Supposément) l'exigence de MSI a été abandonnée – Anders

+0

Désolé, que fait-il les hommes "tombé"? – Sasha

4

Je suppose que vous avez trouvé une solution de contournement maintenant. Depuis que j'ai eu le même problème et trouvé la solution, je l'affiche ici dans l'espoir d'aider les autres. Je voulais désactiver le bouton ANNULER après le démarrage d'une mise à niveau d'application par l'utilisateur. Utilisez cette procédure:

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

aussi une autre façon de faire manuellement c'est:

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

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

Une autre façon serait d'utiliser cette directive [Configuration]:

[Setup] 
AllowCancelDuringInstall=yes 

Ceci est très utile pour des scénarios simples; Vous pouvez l'utiliser à la place des procédures ci-dessus.

+1

Je dirais que forcer le 'WizardForm' à se repeindre (cette ligne' WizardForm.Update') n'est pas nécessaire, et même si vous avez répondu comment désactiver le bouton Annuler, je vous donne mon upvote. – TLama

+0

ouais, vous avez probablement raison; c'est juste une ** overkill **! Parfois, je viens d'utiliser ** double tap ** pour être sûr! Java Swing repaint() me hante encore, je suppose ... Pourtant, si vous voulez utiliser ceci en dehors de 'CurPageChanged()', vous devez 'WizardForm.Update;' sinon le bouton ne sera pas actualisé. – fubar