Inno Setup: captura los eventos de control en la página del asistente

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

  •  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)

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top