当一个函数有多项结果输出时,该如何依次调用?(50分)

  • 主题发起人 freeman2002
  • 开始时间
F

freeman2002

Unregistered / Unconfirmed
GUEST, unregistred user!
function getstr(s1,s2,s3:string):array of string;
bein
setlength(result,3);
result[0]:=s1;
result[1]:=s2;
result[2]:=s3;
end;
分别将函数中的结果result[0],resutl[1],result[2]取出,并分别附给A,B,C
 
改为这样可以吗?
function getstr(s1,s2,s3:string;var ResultStr:array of string)
 
你确定Delphi能这么作?至少我的不能,把返回值改程 TStrings吧
 
function TForm1.getstr(s1,s2,s3:string):eek:levariant;
begin
result:=VarArrayCreate([0,2],varolestr);
result[0]:=s1;
result[1]:=s2;
result[2]:=s3;
end;

调用此函数结果变量可为动态数组(array of string)或者变体类型(olevariant)
 
array of string不能作为函数返回的,你需要这么做:
type
TStringArray = array of string;

function getstr(const s1,s2,s3: string):TStringArray;
bein
SetLength(Result,3);
Result[0]:=s1;
Result[1]:=s2;
Result[2]:=s3;
end;
 
返回一个 TStringList 不是更好吗
 
正如shenloqi所说
象这种情况下,需要先定义一个数组类型,再定义这个类型下的变量,就可以用了,
在Delphi下,就必须要这样办,你可以在帮助文档里查得到。
 
顶部