Inno Setup: eventos de controle de captura em página do assistente
-
02-07-2019 - |
Pergunta
Em um usuário definido página do assistente, existe uma maneira de mudar captura ou eventos foco dos controles? Eu quero dar um feedback imediato sobre a entrada do usuário em alguns menus suspensos (por exemplo, uma caixa de mensagem)
Solução
Levei algum tempo para resolvê-lo, mas depois de ser apontado na direção certa por Otherside, eu finalmente consegui-lo (obras para a versão 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;
Outras dicas
Uma vez que o script em InnoSetup é vagamente baseado em Delphi, os controles devem ter alguns eventos como OnEnter
(= controle tem foco) e OnExit
(= controle de foco perdido). Você pode atribuir procedimentos a esses eventos, algo como isto:
ComboBox.OnExit: = ComboBoxExit;
procedure ComboBoxExit(Sender: TObject);
begin
end;
Eu não tenho acesso a InnoSetup agora, então você terá de pesquisar os eventos disponíveis e parâmetros para os procedimentos.