如何在具有多个值的c++builder中使用InputBox
how to use InputBox in c++builder with multiple values
如何使用 InputBox 让它接受 3 个值。我可以使用代码让它只显示一个值:
String input[3];
input[0]= InputBox("paied check", "the value", "");
有什么帮助吗?
InputBox()
不支持您的请求。它专为单值输入而设计。
InputQuery()
支持多值输入,但仅限于C++Builder XE2及以后版本,eg:
String prompt[3] = {"value 1:", "value2:", "value 3:"};
String input[3];
if( InputQuery("paied check", EXISTINGARRAY(prompt), EXISTINGARRAY(input)) )
{
//...
}
或者:
String input[3];
if( InputQuery("paied check", OPENARRAY(String, ("value 1:", "value2:", "value 3:")), EXISTINGARRAY(input)) )
{
//...
}
注意 OPENARRAY()
/EXISTINGARRAY()
宏的使用(来自 sysopen.h
)。它们是必需的,因为 InputQuery()
只接受 Delphi 风格的开放数组,而不是 C 风格的数组。开放数组有一个附加参数(隐藏在 Delphi 中,但在 C++ 中是显式的)来指定每个数组的最高索引(不是数组计数)。宏为您处理额外的值,但它们仅适用于静态数组(您正在使用)。
如何使用 InputBox 让它接受 3 个值。我可以使用代码让它只显示一个值:
String input[3];
input[0]= InputBox("paied check", "the value", "");
有什么帮助吗?
InputBox()
不支持您的请求。它专为单值输入而设计。
InputQuery()
支持多值输入,但仅限于C++Builder XE2及以后版本,eg:
String prompt[3] = {"value 1:", "value2:", "value 3:"};
String input[3];
if( InputQuery("paied check", EXISTINGARRAY(prompt), EXISTINGARRAY(input)) )
{
//...
}
或者:
String input[3];
if( InputQuery("paied check", OPENARRAY(String, ("value 1:", "value2:", "value 3:")), EXISTINGARRAY(input)) )
{
//...
}
注意 OPENARRAY()
/EXISTINGARRAY()
宏的使用(来自 sysopen.h
)。它们是必需的,因为 InputQuery()
只接受 Delphi 风格的开放数组,而不是 C 风格的数组。开放数组有一个附加参数(隐藏在 Delphi 中,但在 C++ 中是显式的)来指定每个数组的最高索引(不是数组计数)。宏为您处理额外的值,但它们仅适用于静态数组(您正在使用)。