我正在编写一个涉及多个输入对话框以填充数组的程序。
在第一个输入对话框中,用户输入一个整数N.
随后应显示N个输入对话框,要求用户将数据放入数组中。
答案 0 :(得分:1)
这个简单的函数提供了一种输入任意长度字符串数组的方法:
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;