-2

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

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

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

4

1 回答 1

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;
于 2013-08-20T09:46:13.753 回答