2008-09-26 4 views

Répondre

4

Il m'a fallu un certain temps pour le travailler, mais après avoir été pointé dans la bonne direction par Otherside, je l'ai finalement obtenu (fonctionne pour la version 5.2):

[Code] 

var 
    MyCustomPage : TWizardPage; 

procedure MyEditField_OnChange(Sender: TObject); 
begin 
    MsgBox('TEST', mbError, MB_OK); 
end; 

function MyCustomPage_Create(PreviousPageId: Integer): Integer; 
var 
    MyEditField: TEdit; 
begin 
    MyCustomPage := CreateCustomPage(PreviousPageId, 'Caption', 'Description'); 
    MyEditField := TEdit.Create(MyCustomPage); 
    MyEditField.OnChange := @MyEditField_OnChange; 
end; 
+0

Pouvez-vous ajouter la version de Inno Setup que vous utilisez ce code avec? Il ressemble à la version 5. Je pose cette question car je sais qu'il y a pas mal de différences concernant les pages personnalisées entre les versions 4 et 5. – Otherside

+0

Bonjour Otherside, j'ai ajouté le numéro de version à ma réponse. Merci encore pour votre aide! – Treb

2

Depuis le script en InnoSetup est vaguement basé sur Delphi, les contrôles devraient avoir des événements comme OnEnter (= contrôle a mise au point) et OnExit (= contrôle le focus perdu). Vous pouvez affecter des procédures à ces événements, quelque chose comme ceci: ComboBox.OnExit: = ComboBoxExit;

procedure ComboBoxExit(Sender: TObject); 
begin 

end; 

Je n'ai pas accès à InnoSetup en ce moment, vous aurez donc besoin de rechercher les événements et paramètres disponibles pour les procédures.

Questions connexes