首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

怎么判断一个对象未[定义或为空

2013-09-07 
怎样判断一个对象未[定义或为空?本帖最后由 antony521 于 2013-09-01 18:21:56 编辑两个菜单项一个复制记

怎样判断一个对象未[定义或为空?
本帖最后由 antony521 于 2013-09-01 18:21:56 编辑 两个菜单项一个复制记录一个粘贴记录
复制记录代码:
PUBLIC myobj
SCATTER NAME myobj
粘贴记录代码:
APPEND BLANK
GATHER NAME myobj
经常在未执行复制记录菜单的情况下误执行粘贴菜单选项出现myobj未定义的错误
现在想通过判断对象myobj未定义或为空来跳过粘贴记录的选项.
我用SKIP FOR (vartype(myobj) $ 'UX')没有任何作用.

 Define POPUP EdtShort SHORTCUT RELATIVE FROM MROW(),MCOL()
 Define Bar 1 Of EdtShort Prompt "复制记录" ;
            MESSAGE "复制整行记录"
 Define Bar 2 Of EdtShort Prompt "添加记录到表尾" ;
            SKIP FOR (vartype(myobj) $ 'UX') ;
            MESSAGE "添加并粘贴记录到表的末尾"

 On Selection Bar 1 Of EdtShort Do CopyREC
 On Selection Bar 2 Of EdtShort Do PasteREC
 Activate POPUP EdtShort

PROC CopyRec
    PUBLIC myobj
    SCATTER NAME myobj
ENDPROC

PROC PasteRec
    APPEND BLANK
    GATHER NAME myobj
ENDPROC
[解决办法]
没看出问题所在
只提醒一点,粘贴代码最后应加上 Release myobj

[解决办法]
我用 xp 和 win7(32位旗舰版) 都试了一下,没发现问题,运行正常

一般我判断一个我需要的对象变量是否存在会这样写
vartype(myobj) == 'O' and !isnull(myobj)

[解决办法]

引用
是放在右键菜单中.
改成SKIP FOR Vartype(myobj) == 'U' .And. Isnull(myobj);仍然无效.
没辙了!
 
改也应该是这样
SKIP FOR Vartype(myobj) != 'O' or Isnull(myobj)

热点排行