SELECT HANGYE SET FILTER TO GO n_jlhao BROWSE
”......同样,借助 vfp9 的 bindevent 命令,可以将列对象中的文本对象事件绑定到你自己的事件处理器上......“ 事件处理器? 百度过可以与WINDOWS事件做绑定,但还是看不懂与实际应用有什么关联,求举例
Browse 命令主要用于交互操作方式,不太适合用来做用户界面 vfp 中(我只用 vfp9,其他版本不确定) browse 命令有可选的 name 子句,可以将这个 browser 窗口当做一个 grid 对象来设置(仅指属性) 例如: 执行 browse name oo,然后就可以用 oo.属性名来查看和设置了 ?oo.RecordSource ?oo.column1.ControlSource 同样,借助 vfp9 的 bindevent 命令,可以将列对象中的文本对象事件绑定到你自己的事件处理器上 此外,browse 命令也有 window 和 in window 这样的可选子句,将 browse 窗口指定到你自己的表单中显示 modify memo 也有同样的可选子句 vfp 应该也兼容以前的 foxpro 中,browse 命令是可以有很多可选参数的,不敢确定是否起作用,试试看吧: browse fields 字段名:W=onentry():V=onexit():F *-- 下列函数放入你的过程文件(确保有用 set proc to 加载它)中或你的主程序中 function onentry messagebox('进入') endfunc function onexit messagebox('退出') endfunc 总之不会比用 form + grid 来得简单 只是你自己用的,多个 vfp 窗口,怪是怪点,凑合着用吧
在grid中双击备注(memo)字段,能像在brow中那样双击后弹出一编辑框进行编辑,在这里总结一下供大家参考。 表单ShowWindow属性设成非1(非在顶层表单中),都可以实现。 表单属性ShowWindow=1(在顶层表单中),有两种情况: 1.表单属性WindowType=0无模式,也可以实现;(当ShowWindow=1,一般都设WindowType=1,才有实际意义); 2.表单属性WindowType=1模式,不能直接实现,但在表格的memo字段列的text1的dblclick 事件写如下代码,就可以实现了: MODIFY MEMORY (this.Parent.ControlSource) 但要注意:当表单属性Desktop=.T.时,编辑框将被表单遮住,反之不被遮住。
SCREEN=OFF resource=off
你编译后出现了个exe,对应的是窗体。窗体运行时,本质上还是调用vfp解释器。 但是你这个编辑窗口是vfp解释器的。当且仅当vfp窗口显示时,编辑窗口(作为vfp解释器的子窗体)才显示。 所以,设_screen=on,使得运行时显示vfp解释器的窗口,这样应该可以了。 但这样可能会运行时多开一个窗口。 ---- 变通解决方案是多写一个子窗体,专门用来编辑memo
2580
社区成员
2.9w+
社区内容