请问:应用程序服务器怎么返回Tstrings类型数据??? (100分)

  • 主题发起人 主题发起人 张辉明
  • 开始时间 开始时间

张辉明

Unregistered / Unconfirmed
GUEST, unregistred user!
SERVER:(WarningAraay:Tstrings;)
var
i:integer;
strs:Tstrings;
begin

with mainformdo
begin
strs:=TStringList.Create ;
Result := VarArrayCreate([0,WarningAraay.Count-1 ], varVariant);
for i := 0 to WarningAraay.Count-1do
Result := WarningAraay.Strings;
end;

end;

client:
var
temp:oleVariant;
i:integer;
strs:TStrings;
begin
try
Strs:=TStringList.Create ;
Temp:=VarArrayCreate([0,1],varvariant);
temp:=gsys.Gdcomsrv.AppServer.GetAnnumciator;
if varisarray(temp) then
begin
for i:=0 to vararrayhighbound(temp,1)do
strs.add(temp);
memo1.Lines.text:=strs.text;
end;
except
raise exception.Create('无法获取报警码信息!');
end;

当服务器端时,client可以正常取得信息,但当WarningAraay.count=0
时,就执行 raise exception.Create('无法获取报警码信息!');语句了,虽然我可以
把raise语句去掉,但我不想这么做。
 
既然是TStrings那么你可以用TStrings.Text返回啊,在客户端再将返回的String赋值给TStrings变量的Text,就行了,不需要定义TStrings的返回对象,这样在Result的释放时就不会出错了。
 
也行啊,我试试
 
接受答案了.
 
后退
顶部