Oracle Forms6i 属性类、对象组、对象库用法

p.s http://www.phpchina.com/78/viewspace_13836.html[@more@]

对象组对导航器中的所有对象和属性进行打包,在对象组里可以建立多个子组,来进行分类。
当别的Form要用到这些对象类时,通过把对象组放入对象库,存成*.olb文件实现共享。而属性类只是对属性的打包,在不同的Form中共享属性类时,必须通过对象组。


对象组使你包装可重用对象,为以后的复制或划分子类所用。对象组在单个标题下的模块中收集一组对象。通过复制或者划分对象组的子类,可以得到它包含的所有对象。可以将任意的对象向下组合到数据块层,
但不能对块内的项目进行分组,必须在对象组中包含完整的数据块。

对象库是一个模块。通过拖动对象并放入到库模块中的方式,集中可重用的对象集。要重新使用对象库中的对象,就将库打开并将对象拖动并放入应用程序中。利用库可以将对象组织在一个或多个标记文件夹中。
一个对象库可以包含单个的对象,如块、窗口、警报、属性类等等,也包含对象组。

1.程序只要对象继承了对象库中的对象,且文件名称,相对路径/绝对路径完全一致即可。事实上其它文件均一样,如:在多台计算机上安装了应用程序,修改某一表单后,将修改编译后的单个FMX拷到其它计算机原文件处覆盖即可,mmx文件,plx文件,olb文件一样。
2.目前对对象库的修改可能就只有拖来拖去的方法了。
3.当然要现继承了。建议你作如下检测:
创建一个表单frm1,继承olb对象库中某一对象(如背景图,画布背景色,将frm1另存为frm2,frm3,...。
修改对象库中的对象属性,保存后观察各frm的变化。

提示:
1.检查被继承对象的各属性,如果属性名称下有红色叉号标记则该属性将不在继承对象库对象的对应属性,即使该属性调整后与对象库中的属性完全一致。要使该属性被继承,就需使用上面的红色继承按钮恢复继承关系。
2.由于对象是所有属性完全继承,可能导致继承不必要的属性,建议将需要的属性加到属性类,再将属性类添加到对象库中。
如:“保存”按钮,我要继承它的大部分属性,某些属性不必继承,如坐标。则必须先破坏这些属性的继承关系(红色叉号标记),否则修改对象库中的属性后,继承不必继承新的属性值,可能亏大了,而且这一点极容易忽视。而使用属性类则可以避免可能无法预料的问题。如一个日期项,将其文本对齐,格式掩吗,宽度高度等属性加到属性类中,则只会仅继承该属性类中的属性,其它属性一概不相干,因此比直接继承对象更灵活。


可能正是我说的继承对象易出现的问题:所有属性完全继承。检查对象库中按钮的所处的画布属性如canvas1,再检查你的表单上是否有该画布,如创建一个画布时默认为canvas12。
老调重弹:为了避免该类有些预料不到的情况,请使用属性类继承
只要是合法的olb文件,就可以调用。
提示:尽量不要将多个对象集成继承,否则在向删除继承对象的子对象时面临麻烦。如:创建一个控制块“kz”,包含按钮“保存”,“新增”,“删除”,“退出”等按钮及它们的标准触发器,一旦继承了“kz”对象,则各按钮及其所有的触发器等全部继承下来,你可以在“kz”块中添加其它对象,也可以修改继承下来的各子对象,但是你无法删除任何一个继承下来的子对象。
因此,为了更加灵活使用继承的特性,本人建议如下:
1.尽量使用属性类继承,少用对象继承。
2.尽量使用单对象继承,少用多层对象套嵌经常。
另外,我觉得该论坛上的关于附加程序库、对象库(属性类、对象组、...)等关于继承的用法已经可以满足应用开发的需要,只要多搜索,多实践就可以了。
如:触发器可以作为一个对象被继承。一个带有触发器的项(数据项+项触发器..)也可以被继承,该项下被连带继承下来的触发器即为子对象,删除操作只能针对该项,而不能是其下连带继承下来的触发器。
可以套嵌子对象的dui对象还有有数据块(数据块+块级触发器+数据项+项触发器..),画布(画布+框架+标签+图片...)
为防止使用时考虑不到,给以后的维护造成不必要的麻烦,再次建议:慎用!!!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10484922/viewspace-970075/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10484922/viewspace-970075/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值