回 帖 发 新 帖 刷新版面

主题:菜鸟再次请教一个问题

thisform.i=thisform.i+1
select password
locate for yh=alltrim(thisform.combo1.value)
if found () and mm=alltrim(thisform.text1.value)
 do 菜单 1.mpr
 do 工具
 release thisform
else
 if thisform.i<3
  =messagebox("操作员密码错!"+chr(13)+"再试一次!",48,"警告")
  thisform.text1.setfocus
 else
  =messagebox("对不起,您已错了三次了!"+chr(13)+"非法用户,;请您退出系统",48,"严重警告")
  thisform.release
 endif
endif

这段代码中在我执行中说“do 菜单 1.mpr”这个语法错误,不知道错在哪呢?还说找不到属性i,请问是什么问题了

回复列表 (共3个回复)

沙发

整段代码好像是用于系统登陆的,如果输入三次密码错误则退出程序,如果密码正确就进入主程序。如果是这样的话,那么,这段代码应该放入 For 循环语句或者是 Do While 循环语句中。
变量只用 i 就行了,在前面加了 thisform. 就把 i 当成表单的属性了,而表单没有这样一个属性,因而报错。
“do 菜单 1.mpr” 和 “do 工具” 这两句,好像是想把一个菜单和一个工具条放入主表单中,首先用在此处是不对的,其次,命令的写法是错误的。
把菜单放入表单的命令应该在主表单的 init 事件中用 do XXX.mpr with this (必要时加上路径)
把工具条放入表单,我是在主表单的 Activate 事件中用以下语句完成
SET CLASSLIB TO MYCLASS ADDITIVE
THIS.TBRTOOLS=CREATEOBJECT('toolbar')          &&创建工具条
THIS.TBRTOOLS.DOCK(0)                          &&放置在屏幕顶端
THIS.TBRTOOLS.hide                             &&显示工具条
RELEASE CLASSLIB MYCLASS

板凳

你的变量不要用thisform.i,你在表单的load 里 publ i 
把 上面的thisform.i换成m.i
还有你的do 菜单 1.mpr
因为你的菜单名中有空格,
所以你得用
do "菜单 1.mpr"
这样肯定没问题

3 楼

感谢两位的帮助,不胜感激

我来回复

您尚未登录,请登录后再回复。点此登录或注册