我正在编写一个程序,该程序涉及用于填充数组的多个输入对话框。
在第一个输入对话框中,用户输入一个整数 N。
随后应显示 N 个输入对话框,要求用户将数据放入数组中。
这个简单的函数提供了一种输入任意长度字符串数组的方法:
type TDynStrArray = array of string;
function ArrayInput: TDynStrArray;
const
SCaption = 'Array input';
SLengthPrompt = 'Please enter the length of the array:';
SElementPrompt = 'Please enter element %d in the array:';
var
slen: string;
len: integer;
i: Integer;
begin
slen := '1';
if not InputQuery(SCaption, SLengthPrompt, slen) then Exit;
if not (TryStrToInt(slen, len) and (len >= 0)) then
begin
ShowMessageFmt('Invalid natural number: "%s".', [slen]);
Exit;
end;
SetLength(result, len);
for i := 0 to len - 1 do
if not InputQuery(SCaption, Format(SElementPrompt, [i+1]), result[i]) then
Exit;
end;
要尝试一下,请将上述代码添加到一个新的 VCL 项目中,并TMemo
在主窗体中添加一个控件。然后添加一个OnCreate
事件处理程序:
procedure TForm1.FormCreate(Sender: TObject);
var
a: TDynStrArray;
i: Integer;
begin
a := ArrayInput;
Memo1.Clear;
for i := 0 to Length(a) - 1 do
Memo1.Lines.Add(a[i]);
end;