Inno Setup: захват событий управления на странице мастера - PullRequest
2 голосов
/ 26 сентября 2008

На странице мастера, определенной пользователем, есть ли способ захвата изменений или фокусировки событий элементов управления? Я хочу предоставить немедленный отзыв о пользовательском вводе в некоторых выпадающих списках (например, в окне сообщения)

Ответы [ 2 ]

4 голосов
/ 01 октября 2008

Мне потребовалось некоторое время, чтобы разобраться с этим, но после того, как 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 голосов
/ 26 сентября 2008

Поскольку сценарии в innosetup свободно основаны на Delphi, элементы управления должны иметь некоторые события, такие как OnEnter (= контроль получил фокус) и OnExit (= контроль потерял фокус). Вы можете назначить процедуры для этих событий, что-то вроде этого: ComboBox.OnExit: = ComboBoxExit;

procedure ComboBoxExit(Sender: TObject);
begin

end;

У меня сейчас нет доступа к Innosetup, поэтому вам нужно будет просмотреть доступные события и параметры для процедур.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...