Inno Setup: captura los eventos de control en la página del asistente
-
02-07-2019 - |
Pregunta
En una página de asistente definida por el usuario, ¿hay alguna manera de capturar cambios o eventos de foco de los controles? Quiero proporcionar una respuesta inmediata sobre la entrada del usuario en algunos menús desplegables (por ejemplo, un cuadro de mensaje)
Solución
Me tomó algo de tiempo resolverlo, pero después de ser señalado en la dirección correcta por Otherside, finalmente lo entendí (funciona para la versión 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;
Otros consejos
Dado que las secuencias de comandos en innosetup se basan libremente en Delphi, los controles deben tener algunos eventos como OnEnter
(= control consiguió foco) y OnExit
(= control perdió foco) . Puedes asignar procedimientos a estos eventos, algo como esto:
ComboBox.OnExit: = ComboBoxExit;
procedure ComboBoxExit(Sender: TObject);
begin
end;
No tengo acceso a Innosetup en este momento, por lo que deberá buscar los eventos y parámetros disponibles para los procedimientos.