论坛风格切换切换到宽版
  • 5210阅读
  • 6回复

【求助】INNO自定义Form问题 [复制链接]

上一主题 下一主题
离线xiaoyi
 

发帖
990
金钱
180
威望
18
只看楼主 倒序阅读 0 发表于: 2011-04-25
自己写了一段代码,取自示例中的 CodeClasses.iss,但是在运行程序的时候出现问题,请问可能是什么缘故造成的?谢谢!
EditBB 已设为全局变量,EditBB.text 是邮箱地址。
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2011-04-25
既然用了 With EditBB Do,下面就不能用
EditBB.Text:= '';
而是用
Text:= '';
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 2 发表于: 2011-04-25
他这样写也没什么问题的, with 只是以 EditBB 作为首要的匹配控件, 如果前缀指明某一控件则以前缀控件名作为该属性的作用控件.

就你帖的这段代码没看出什么问题来, 不过你贴了显示出 Form 的画面, 所以估计是 Form.ShowModal 之后的代码出了问题.

我估计:
你说的全局变量 EditBB 是什么意思? 它不是这个函数的局部变量吗?
你这么说有点混乱了, EditBB 的 Owner 是 Form, 所以 Form 销毁的时候 EditBB 会自动销毁, 如果你在 Form 没有创建(CreateCustomForm)之前就使用了这个 EditBB (你说的全局变量?) , 那么你肯定会看到错误. 如果你不想看到这个错误, 要在 Form.free 之前读取这个 EditBB 的值, 一旦 Form.free , 你读这个值就会出错.
我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)
离线xiaoyi

发帖
990
金钱
180
威望
18
只看该作者 3 发表于: 2011-04-26
感谢两位老大!

确实觉得是没有记住 EditBB 的值。参考虎兄的 make_uharc.iss 脚本还是没能解决问题。那么,如何在 Form.free 之前读取 EditBB 到一个变量呢?请教具体做法,十分感谢!
离线nan2009

发帖
13
金钱
130
威望
13
只看该作者 4 发表于: 2011-04-26
定义一个全局变量不行吗?
离线xiaoyi

发帖
990
金钱
180
威望
18
只看该作者 5 发表于: 2011-04-26
谢谢!
按下面的做法基本解决问题:
先设全局变量 EditBBB: String;
然后再在 if Form.ShowModal() = mrOk then 下面加入:
EditBBB :=EditBB.text;

还想请教另外一个问题。
ok之后,再点击tsetuoform按钮,输入框里面会保留上次输入的字串,而取消之后再点击tsetuoform按钮不会保留上次输入的字串。
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 6 发表于: 2011-04-26
你肯定还有地方对 EditBBB 赋值了. 只提供这么 2 句代码根本不能说明问题.
我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)