在用户定义的向导页面中,有没有办法捕获控件的更改或焦点事件?我想在某些下拉列表中提供有关用户输入的即时反馈(例如消息框)

有帮助吗?

解决方案

我花了一些时间来解决这个问题,但在被其他人指出正确的方向后,我终于得到了它(适用于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;

其他提示

由于innosetup中的脚本基于Delphi,因此控件应该包含一些事件,如 OnEnter (= control got focus)和 OnExit (=控制失去焦点) 。您可以为这些事件分配过程,如下所示:     ComboBox.OnExit:= ComboBoxExit;

procedure ComboBoxExit(Sender: TObject);
begin

end;

我现在无法访问Innosetup,因此您需要查找过程的可用事件和参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top