Inno Setup: cattura gli eventi di controllo nella pagina della procedura guidata
-
02-07-2019 - |
Domanda
In una pagina della procedura guidata definita dall'utente, c'è un modo per acquisire cambiamenti o focalizzare gli eventi dei controlli? Desidero fornire un feedback immediato sull'input dell'utente in alcuni menu a discesa (ad esempio una finestra di messaggio)
Soluzione
Mi ci è voluto un po 'di tempo per risolverlo, ma dopo essere stato indicato nella direzione giusta da Altri, l'ho finalmente ottenuto (funziona per la versione 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;
Altri suggerimenti
Poiché lo scripting in innosetup è vagamente basato su Delphi, i controlli dovrebbero avere alcuni eventi come OnEnter
(= control got focus) e OnExit
(= control lost focus) . È possibile assegnare procedure a questi eventi, in questo modo:
ComboBox.OnExit: = ComboBoxExit;
procedure ComboBoxExit(Sender: TObject);
begin
end;
Non ho accesso a Innosetup in questo momento, quindi dovrai cercare gli eventi e i parametri disponibili per le procedure.