Web services 释放WebService使用的变量

Web services 释放WebService使用的变量,web-services,delphi,delphi-xe2,Web Services,Delphi,Delphi Xe2,如何释放Web服务正在使用的变量 我正在使用此表单: HttpPrincipal.WSDLLocation: = FrmPrincipal.edtWS.Text; HttpPrincipal.Service: = 'CADServicesService'; HttpPrincipal.Port := 'CADServices'; Trinity: = HttpPrincipal as CADServices; 在我将关闭表单时,出现了一个错误,并发现在我声明此部分时: Tr

如何释放Web服务正在使用的变量

我正在使用此表单:

 HttpPrincipal.WSDLLocation: = FrmPrincipal.edtWS.Text;
 HttpPrincipal.Service: = 'CADServicesService'; 
 HttpPrincipal.Port := 'CADServices';     
 Trinity: = HttpPrincipal as CADServices;
在我将关闭表单时,出现了一个错误,并发现在我声明此部分时:

Trinity: = HttpPrincipal as CADServices;
我想这件事已经记不住了

错误如下:

“无效指针” 关闭表单时会发生错误,OnClose或OnDestroy表单中没有任何事件

说明:
Trinity:CADServices,
HttpPrincipal是一个THTTPRIO,

CADServices是我的单元,包含来自WebService的所有过程/函数。

请尝试在运行时创建HTTPIO,而不是使用designtime组件:

function GetCadServices(Addr : String): CadServices;
const
  defSvc  = 'CADServicesService';
  defPrt  = 'CADServices';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  RIO := THTTPRIO.Create(nil)  
  try
    Result := (RIO as CadServices);
    RIO.WSDLLocation := Addr;
    RIO.Service := defSvc;
    RIO.Port := defPrt;
  finally
    if (Result = nil) then
      RIO.Free;
  end;
end;
用法:

Trinity := GetCadServices(FrmPrincipal.edtWS.Text);

如果您使用WSDL导入器导入WSDL,则会自动为您生成此代码(查看CadServices1单元)

Trinity必须销毁变量,代码是真的是,“CADServices”是带有我的WebService的单元。Jose Eduardo,他的意思是
Trinity:=HttpPrincipal-the-CADServices
类似于一些伪代码,而不是真正的Delphi代码。我的借口是一个错误,代码将
Trindade:=HttpPrincipal作为CADServices我希望在您编辑问题并修复所有错误之前,没有人会帮助您。细节很重要。修复实际错误。发布真实代码而不是伪代码。修复格式。还要添加HttpPrincipal和CadServices的定义,我们无法读取屏幕上的内容。没有用,值得记住Trinity:=HttpPrincipal作为CadServices;这被称为主要形式OnCreate@JoseEduardo就像我之前说过的,只要你忽略了这些细节,你就很难得到一个好的答案,但是如果设置了HttpPrincipal的所有者,这个答案就不应该被释放。更多的代码肯定会有帮助——特别是与创建和销毁HttpPrincipal@SirRufo:如OP问题下的评论所述,这是一个设计时间组件。您能告诉我这是在哪里说明的吗?也许我是瞎子。。。但是我找不到它。。。