//结构体定义 TRec = record a: string; b: integer; end;//--函数返回结构体 function test(a: string):TRec; var rec: TRec; begin rec.a:= 'a'; rec.b:= 1; Result:=rec; end; //---调用 var rec: TRec; begin rec:= test('aaa'); showmessage(rec.a); end;
同意月亮的做法,不過在數據操作中,經常Variant 建立數組來做。
上面的已经说了 返回结构体那我说下数组吧 //--整形数组 procedure test(a: integer;var b:array of integer); begin b[0] := a; b[1] := a + 1; end;//---调用 var var c:array[0..10] of integer begin test(1,c); showmessage(inttostr(c[0])); showmessage(inttostr(c[1]));
type sbxx_yx=packed record tymc:string;//图元名称 sbbh:string;//设备编号 zt:string;//是否取反 yx:Integer;//是否始终取遥信状态 cklx:Integer;//测控类型 end;var vg_yxsb:array[0..1000] of sbxx_yx;//遥信设备列表,下标为遥信点号function getyxsbxx; var i:integer; begin data.ADOQuery1.Close; data.ADOQuery1.Connection:=data.ADOConnection1; data.ADOQuery1.SQL.Clear; data.ADOQuery1.SQL.Add('select * from Tzhk_sjdy_dsf'); data.ADOQuery1.Open; data.ADOQuery1.First; while not data.ADOQuery1.Eof do begin i:=data.ADOQuery1.FieldByName('id_dsf').asinteger; self.vg_yxsb[i].tymc:=data.ADOQuery1.FieldByName('tymc').AsString; self.vg_yxsb[i].sbbh:=data.ADOQuery1.FieldByName('sbbh').AsString; ... data.ADOQuery1.Next; end;
TRec = record
a: string;
b: integer;
end;//--函数返回结构体
function test(a: string):TRec;
var
rec: TRec;
begin
rec.a:= 'a';
rec.b:= 1;
Result:=rec;
end;
//---调用
var
rec: TRec;
begin
rec:= test('aaa');
showmessage(rec.a);
end;
//--整形数组
procedure test(a: integer;var b:array of integer);
begin
b[0] := a;
b[1] := a + 1;
end;//---调用
var
var c:array[0..10] of integer
begin
test(1,c);
showmessage(inttostr(c[0]));
showmessage(inttostr(c[1]));
.
.
.
.
sbxx_yx=packed record
tymc:string;//图元名称
sbbh:string;//设备编号
zt:string;//是否取反
yx:Integer;//是否始终取遥信状态
cklx:Integer;//测控类型
end;var
vg_yxsb:array[0..1000] of sbxx_yx;//遥信设备列表,下标为遥信点号function getyxsbxx;
var
i:integer;
begin
data.ADOQuery1.Close;
data.ADOQuery1.Connection:=data.ADOConnection1;
data.ADOQuery1.SQL.Clear;
data.ADOQuery1.SQL.Add('select * from Tzhk_sjdy_dsf');
data.ADOQuery1.Open;
data.ADOQuery1.First;
while not data.ADOQuery1.Eof do
begin
i:=data.ADOQuery1.FieldByName('id_dsf').asinteger;
self.vg_yxsb[i].tymc:=data.ADOQuery1.FieldByName('tymc').AsString;
self.vg_yxsb[i].sbbh:=data.ADOQuery1.FieldByName('sbbh').AsString;
...
data.ADOQuery1.Next;
end;
end;