function返回多个值

来源:互联网 发布:c语言中flag 编辑:程序博客网 时间:2024/06/07 23:11

一、函数的返回值使用 记录 record 、数组 array 等数据类型。 示例代码如下:

Type    TmyData = Record 先定义一个Record有三个返回值    Data1: string;    Data2: string;    Data3: string;end;//定义 function的代码function Tform1.Myfunction(parm: string): TMydata;var MyData1: TMydata;begin    MyData1.Data1:= 'This is Data1:';    MyData1.Data2:= 'This is Data2:';    MyData1.Data3:= 'This is Data3:';    result:= MyData1;      //传回为一个记录recordend;

使用结构体数组

type  TZCLB=record    ZCLBID:Integer;    ZCLBMain:string;    ZCLBMC:string;    ZCLBDM:string;    Flag:string;  end;  ZCLBArr=array of TZCLB;  function GetZCLB(KW:string):ZCLBArr; function GetZCLB(KW:string):ZCLBArr;var  ZC:ZCLBArr;  i:Integer;begin  i:=0;  with DM1.ds1 do  begin    Active:=False;    if KW='' then      CommandText:='select * from [FixedAssetsType]  order by ZCLBMain'    else      CommandText:='select * from [FixedAssetsType] where ZCLBMain= '''+KW+'''';    Active:=True;    SetLength(ZC,RecordCount);    while not Eof do    begin      ZC[i].ZCLBID:=FieldByName('ZCLBID').AsInteger;      ZC[i].ZCLBMain:=FieldByName('ZCLBMain').AsString;      ZC[i].ZCLBMC:=FieldByName('ZCLBMC').AsString;      ZC[i].ZCLBDM:=FieldByName('ZCLBDM').AsString;      ZC[i].Flag:=FieldByName('Flag').AsString;      Inc(i);Next;    end;  end;  Result:=ZC;end;var  ZC:ZCLBArr;  I:Integer;begin  //使用结构体数组的方法  ZC:=GetZCLB(ZCLBMainTxt.Text);  if Length(ZC)<1 then Exit;  for I := Low(ZC) to High(ZC) do  begin    ZCLBMCTxt.Items.Add(ZC[i].ZCLBMC);    ZCLBMCTxt.Values.Add(ZC[i].ZCLBID);  end;end;

二、函
数的参数使用 var 引用参数。示例代码如下:

function abc(var aa,bb,cc:double):string;//返回3个double值,1个string值var  ret: IWantData;begin  aa:=1.234;  bb:=2.021;  cc:=3.333;  result:='';end;
原创粉丝点击