我认为这是一个简单的问题,只是无法理解它。
尝试使用单个页面编写脚本。
组合框和编辑框。
组合框工作正常,我可以根据所选内容获取内容。
我的编辑框但是,如果框中的文本被更改,我无法更新变量。
[Code]
var
server: string;
procedure InitializeWizard;
var
Edit: TNewEdit;
begin
server := '127.0.0.1';
Edit := TNewEdit.Create(CustomPage);
Edit.Top := DescLabel2.Top + DescLabel2.Height + 6;
Edit.Width := CustomPage.SurfaceWidth div 2 - ScaleX(8);
Edit.Text := server;
Edit.Parent := CustomPage.Surface;
无法弄清楚我做错了什么。
答案 0 :(得分:0)
也许我的一段代码会有所帮助:
// The name of the virtual machine
Edit1 := TEdit.Create(WizardForm);
with Edit1 do
begin
Parent := Panel3;
Left := ScaleX(Offset);
Top := ScaleY(0*LineHeight) + ScaleY(5);
Width := ScaleX(145);
Height := LineHeight;
Text := '';
ShowHint := True;
Hint := ExpandConstant('{cm:VBoxConfig1Hint}');
TabOrder := 0;
OnExit := @GetVM_Name;
OnKeyPress := @CheckEditInput;
end;
标记OnExit !!这篇文章你忘了编程。
Procedure GetVM_Name(Sender: TObject);
// Get the machineName
{}
begin
VirtualMachineName := AddQuotes(Edit1.Text);
end;
为避免不必要的输入,请创建一个on checkinput例程。 示例如下:
Procedure CheckEditInput(Sender: TObject; var Key: char);
// This procedure checks if the character entered is a wanted one
{}
begin
if (Key = '{') or (Key = '}') or (Key = '<') or (Key = '>') then
begin
Beep;
Key := #0;
end;
if (Key = '[') or (Key = ']') or (Key = '`') or (Key = '~') then
begin
Beep;
Key := #0;
end;
if (Key = '(') or (Key = ')') or (Key = '#') or (Key = '%') or (Key = '*') then
begin
Beep;
Key := #0;
end;
if (Key = ';') or (Key = ':') or (Key = ',') or (Key = '?') or (Key = '@') then
begin
Beep;
Key := #0;
end;
end;