如何捕获文本框值的变化?
我正在研究如何使用 OnChange
事件函数,但我不知道如何使用它。
[Code]
var
Page: TInputQueryWizardPage;
procedure InitializeWizard();
begin
Page := CreateInputQueryPage(wpWelcome,
'Personal Information', 'Who are you?',
'Please specify your name and the company for whom you work, then click Next.');
Page.Add('Server:', False);
Page.Add('NAME:', False);
Page.Add('LOCATION:', False);
Page.Values[0] := ('test0');
Page.Values[1] := ('test1');
Page.Values[2] := ('string')+Page.Values[0]+('string')+Page.Values[1];
end;
我想更改一 (2) 个编辑框的文本,因为用户正在更改其他编辑框(0 和 1)的文本。
最佳答案
处理 OnChange
事件,例如:
var
Page: TInputQueryWizardPage;
procedure EditChange(Sender: TObject);
begin
Page.Values[2] := 'string' + Page.Values[0] + 'string' + Page.Values[1];
end;
procedure InitializeWizard();
begin
Page := CreateInputQueryPage(...);
Page.Add('Server:', False);
Page.Add('NAME:', False);
Page.Add('LOCATION:', False);
Page.Values[0] := 'test0';
Page.Values[1] := 'test1';
Page.Edits[0].OnChange := @EditChange;
Page.Edits[1].OnChange := @EditChange;
// Reflect the initial values
EditChange(nil);
end;
请注意,Edit[2]
可以由用户更改,因此您可能希望将其设置为只读。
Page.Edits[2].ReadOnly := True;
Page.Edits[2].Color := clBtnFace;
或者您可能实际上想使用 TLabel
来代替。
关于inno-setup - 根据 Inno Setup 中编辑框的更改更新控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49252423/