帮忙看看这个“致命的错误”。。。。(50分)

  • 主题发起人 主题发起人 spanishII
  • 开始时间 开始时间
S

spanishII

Unregistered / Unconfirmed
GUEST, unregistred user!
目的:得到HTML传来的参数

我的ActiveX中添加了个属性
PROPERTY Servername:WIDESTRING READ getservername WRITE setservername,
添加了GETVALUE 和SETVALUE的申明
在getservername 的FUNCTION中我写了RUSLT:=servername

我在一个BUTTON的CLICK里定义了一个WIDESTRING的变量SNAME,我写
SNAME:=servername
编译执行时,IE报致命性错误,如果getservername里我写RUSLT:=‘DD’,则SNAME可以得到这个字符串

HTML中的参数我这样写的:<param name="servername" value="spanish">

这是什么原因呢,请帮忙想想。。。。。。
 
高手都上哪了??
 
ServerName是属性,在获得属性值的时候执行的是GetServerName,你在GetServerName里又通过Result := ServerName获得属性值,再次激活GetServerName函数,然后又通过Result := ServerName获得属性值,再次激活GetServerName函数,然后。。。。。。
成死循环了。。。。
你可以使用一个中间变量保存ServerName值,然后在GetServerName里返回这个中间变量的之即可。例如:Result := FServerName;
 
我试试先....
 
RUSLT:=servername

哎……不应该呀……就是这个原因了
 
还有个问题哦。
PROPERTY Servername:WIDESTRING READ getservername WRITE setservername,
这一行是必须的吗?
 
当然是必须的,你既然定义一个属性就是得到它相应的值。
 
我定义了Fservername变量,在getservername函数中写result:=Fservername,结果显示Fservername为空,我在HTML中的OBJECT范围内已经写<PARAM NAME="servername" value="godserver">,怎么好象result:Fservername的动作是把Fservername的值付给这个函数当作结果啊。。。。
 
getservername函数中应该把<PARAM NAME="servername" value="godserver">里面的服务名取出来才对呀,你的FServerName没有赋值吧?
 
procedure SETservername(value:widestring);
楼上的意思是不是要在SETservername过程里写Fservername:=value?

 
只要你GetServerName里面把
<PARAM NAME="servername" value="godserver">
的服务名取出来作为GetServerName的Result就可以不写,
但这些都应该是自动生成的吧(Ctrl+Shift+C),最好写上。因为你后面用的只是ServerName这个属性而已。
<PARAM NAME="servername" value="godserver">
怎么传进去的,应该在GetSerName这个过程里把它取出来
 
搞定了,谢谢
 
后退
顶部