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

发布于 2024-07-06 09:13:36 字数 69 浏览 5 评论 0原文

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

In a user defined wizard page, is there a way to capture change or focus events of the controls? I want to provide an immediate feedback on user input in some dropdowns (e.g. a message box)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木森分化 2024-07-13 09:13:36

我花了一些时间来解决这个问题,但在 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;

Took me some time to work it out, but after being pointed in the right direction by Otherside, I finally got it (works for version 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;
素手挽清风 2024-07-13 09:13:36

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

procedure ComboBoxExit(Sender: TObject);
begin

end;

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

Since the scripting in innosetup is loosely based on Delphi, the controls should have some events like OnEnter (= control got focus) and OnExit (= control lost focus). You can assign procedures to these events, something like this:
ComboBox.OnExit := ComboBoxExit;

procedure ComboBoxExit(Sender: TObject);
begin

end;

I don't have access to Innosetup right now, so you will need to lookup the available events and parameters for the procedures.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文