Inno Setup: Capturer les événements de contrôle dans la page de l'assistant

StackOverflow https://stackoverflow.com/questions/139358

  •  02-07-2019
  •  | 
  •  

Question

Dans une page de l'assistant définie par l'utilisateur, existe-t-il un moyen de capturer les événements de changement ou de focus des contrôles? Je souhaite fournir un retour immédiat sur la saisie de l'utilisateur dans certaines listes déroulantes (par exemple, une boîte de message)

Était-ce utile?

La solution

Il m'a fallu un peu de temps pour résoudre le problème, mais après avoir été dirigé dans la bonne direction par Otherside, je l'ai enfin compris (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;

Autres conseils

Etant donné que les scripts dans innosetup sont basés sur Delphi, les contrôles doivent comporter des événements tels que OnEnter (= le contrôle a le focus) et OnExit (= le contrôle a perdu le focus) . 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 pour le moment. Vous devrez donc rechercher les événements et les paramètres disponibles pour les procédures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top