代码之家  ›  专栏  ›  技术社区  ›  Treb

Inno Setup:在向导页面中捕获控制事件

  •  2
  • Treb  · 技术社区  · 16 年前

    在用户定义的向导页面中,是否有方法捕获控件的更改或焦点事件?我想在一些下拉菜单(例如消息框)中提供对用户输入的即时反馈

    2 回复  |  直到 16 年前
        1
  •  4
  •   Treb    16 年前

    我花了一些时间才弄清楚,但在Otherside为我指明了正确的方向后,我终于明白了(适用于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;
    
        2
  •  2
  •   Otherside    16 年前

    由于innosetup中的脚本是松散地基于Delphi的,因此控件应该有一些事件,如 OnEnter (=控制获得焦点)和 OnExit (=控制失去焦点)。您可以为这些事件分配程序,如下所示: 组合框。OnExit:=组合框退出;

    procedure ComboBoxExit(Sender: TObject);
    begin
    
    end;
    

    我现在没有访问Innosetup的权限,因此您需要查找程序的可用事件和参数。