预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

你的接口部分可以定义一个OleVariant的参数GetUserObj(.....,[out]tem:OleVariant);然后在程序结束的时候将UserData[10]付给tem:tem:=UserData在Client端也定义一个OleVariant的变量,obj:OleVariant就可以使用了obj[0].a=.....obj[0].b=..... usecomobj;.............................................varvarole:olevariant;vararray:arrayof.......beginvarole:=createoleobjete();vararray:=varole;-================Olevariant的高级用法是构造可变数组;调用vararraycreate()functionvararraycreate(constbounds:arrayofinteger;vartype:integer):variant;vara,b:olevariant;i:integer;begina:=vararraycreate(0,9],varinteger);fori:=0to9doa[i]:=i+1;b:=vararraycreate([1,4,0,9],varvariant);............可变数组的基类型不能是varstring,要创建一个字符串类型的可变数组,应当用varolestr来代替varstring;vararraayiof()vararraydimcount)|()vararraylowbound()vararraylock()vararrayunlock() functionTform1.VariantToList(VarOle:OleVariant):TStringList;//先把olevariant转换成为TStringList类型varList:TStringList;StrRecord:OleVariant;i:integer;High:integer;Low:integer;beginifnotVarIsArray(VarOle)thenExit;List:=TstringList.Create;High:=VarArrayHighBound(VarOle,1);Low:=varArrayLowBound(VarOle,1);fori:=LowtoHighdoList.Add(VarOle[i]);Result:=List;end;functionTform1.SearchBill(BillNumber:OleVariant):OleVariant;varQuery:TQuery;StrRecord:OleVariant;//存入查寻所得结果BillList:TStringList;//存放单据号列表strBillNo:String;//存放单据号strBillPerfix:String;//存放单存类型StrBillName:string;//单据名称StrBillMName:string;//表名i,index:integer;beginBillList:=TstringList.Create;BillList:=VariantToList(BillNumber);//调用上面定义的函数Query:=TQuery.Create(nil);Query.DatabaseName:='materiel_mgr';i:=BillList.Count;StrRecord:=VarArrayCreate([1,'i',1,6],OleVariant);fori:=0toBillList.Count-1dobeginstrBillNo:=BillList.Strings[i];index:=pos('-',strBillNo);strBillPerfix:=copy(strBillNo,1,index-1);tryQuery.SQL.Clear;Query.SQL.Add('selectBillName,BillMNamefromTableType_TabwhereBillPerfix='#39+strBillPerfix+#39);Query.Open;StrBillMName:=Query.FieldValues['BillMName'];StrBillName:=Query.FieldValues['BillName'];Query.SQL.Clear;Query.SQL.Add('selectmakeDate,FDate,OutMan,State,LogInsertDatefrom'+StrBill