Настройка Инно:Захват событий управления на странице мастера

StackOverflow https://stackoverflow.com/questions/139358

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

procedure ComboBoxExit(Sender: TObject);
begin

end;

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top