屬性類、對象組、對象庫用法(Oracle Form6i)
2024-08-29 13:42:41
供稿:網友
非常精!!! 對象組對導航器中的所有對象和屬性進行打包,在對象組里可以建立多個子組,來進行分類。當別的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對象還有有數據塊(數據塊+塊級觸發器+數據項+項觸發器..),畫布(畫布+框架+標簽+圖片...)
為防止使用時考慮不到,給以后的維護造成不必要的麻煩,再次建議:慎用!!!