多个顺序输入对话框?

时间:2013-08-20 09:37:17

标签: delphi delphi-7

我正在编写一个涉及多个输入对话框以填充数组的程序。

在第一个输入对话框中,用户输入一个整数N.

随后应显示N个输入对话框,要求用户将数据放入数组中。

1 个答案:

答案 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;