delphi 代码给出了错误的输入框,我不知道为什么

c3frrgcw  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(123)

我有一个字符串类型的数组,当我调用InputBox函数时,它给了我一个错误,我不知道为什么,这真的很烦人,尽管代码和我的课本上的完全一样。
我的代码:

var
  arrNames: array[1..10] of string;
  i: integer;
begin
  for i := 1 to 10 do
    arrNames := inputbox('Enter name here');

字符串
我知道这可能是一件毫无意义的简单的事情,但请帮助我。
我试过StrToIntIntToStr,即使它们在那里没有用。我也试过把随机的东西放在那里。它就是不工作...请帮助。

omjgkv6w

omjgkv6w1#

InputBox()有多个需要传入的参数。
此外,它返回一个single字符串,而不是一个字符串数组,因此您的循环需要为每个返回的string索引到数组中。
试试这个:

var
  arrNames: array[1..10] of string;
  i: integer;
begin
  for i := 1 to 10 do
    arrNames[i] := InputBox('Caption Here', 'Enter name here', '');
            ^^^

字符串
或者,您可以使用InputQuery()来提示用户一次输入多个字符串,例如:

var
  arrPrompts: array[1..10] of string;
  arrNames: array[1..10] of string;
begin
  for i := 1 to 10 do
    arrPrompts[i] := 'Enter name here';
  InputQuery('Caption Here', arrPrompts, arrNames, nil);

5rgfhyps

5rgfhyps2#

如果你读过InputBox文档,你会发现InputBox函数需要三个输入参数,而你只提供了一个。
而且我强烈怀疑您的教科书只使用一个参数调用InputBox,因为InputBox一直需要三个输入参数。
这里的另一个问题是,您没有尝试将InputBox结果设置为特定的数组项,而是作为整个数组变量。
正确的方法应该是这样的:

arrNames[i]:= inputbox('Enter name','Please enter name here','');

字符串
注意arrNames后面有一个方括号,方括号将i括起来。这将控制您将InputBox函数的结果设置为哪个数组元素。
还请注意,在调用输入框时,我使用了三个参数。第一个参数是一个字符串,它将显示为inputBox的标题。第二个参数是输入框中的文本。作为第三个参数,我传递了一个空字符串,它是InputBox中已经显示的默认值。

相关问题