uniGUI0.93项目升级到0.94版报a.on is not a function 的解决办法

uniGUI0.93个别项目升级到0.94版后编译运行时会出现原来在0.93下正常运行的项目,到了0.94版本后运行时不能正确显示窗体,登录窗口也不显示,开启Ajax错误提示后,发现报Ajax错误,类似于:

a.on is not a function 

在Firefox或者Chrome中调试可以看到这个错误。


根据官方的提示,出错的原因在于From的dfm文件中保存的ClientEvents事件的约定字符串不同。0.93版中,如果用到from的OnBeforerender事件,在dfm文件一般保存为以下形式:



而到0.94版本中,用到同样的事件则保存的文本如下:


由于0.94版本编译后运行时识别客户端事件ExtEvents时,不能正确识别0.93的客户端事件,从而导致出现 a.on is not a function的错误。

知道了原因,解决的办法的办法很简单,将旧版本开发的dfm文件以文本方式打开,删除ClientEvent.ExtEvents.strings定义的这一整段,然后在Delphi的集成开发环境中重新写ClientEvent的代码就可以完美解决。

你可能感兴趣的:(uniGUI0.93项目升级到0.94版报a.on is not a function 的解决办法)