很多人在建立高階的可視類的時候都會遇到以上情況,但pb卻沒有提供這樣的純浄的實現方法。
下面將本人的實現方式做一描述:
1..window lw_parent --父視窗
2..u_cst_button luo_item --例項命名
3..setredraw(false) --停刷
4..of_getparentwindow() --獲取父視窗(這中間的實現方法就不要問了,到處都是)
5..lw_parent.openuserobject(luo_item) --動態開啟例項(發現沒,這終歸還是使用了視窗級的動態生成物件)
6..setparent(handle(luo_item),handle(this)) --將剛開啟的例項裝入本物件容器(這就是核心了,配合operuserobject就完成了完整動態建立了)
7..setredraw(true) --開刷
實現這個過程其實就是乙個動態建立物件和所在容器轉移的過程,**行5-6就是關鍵所在;
依此思路靈活應用應該可以設計出很強大的高階可視類了,其中6行使用了以下api的申告:
public function long setparent(long lchild, long lparent) library "user32.dll"
在delphi中如何動態建立類的例項
在物件導向語言中,用兩種方法建立類的例項 靜態建立和動態建立。靜態建立就是在程式中顯式地建立類的例項,如c1 tclass1.create 而動態建立是在只知道類名的前題下建立類的例項。動態建立在實現上要比靜態建立更靈活,因為動態建立無需引用被建立類,並且更容易實現如多型等物件導向特性。一 動態建立...
在delphi中如何動態建立類的例項
在物件導向語言中,用兩種方法建立類的例項 靜態建立和動態建立。靜態建立就是在程式中顯式地建立類的例項,如c1 tclass1.create 而動態建立是在只知道類名的前題下建立類的例項。動態建立在實現上要比靜態建立更靈活,因為動態建立無需引用被建立類,並且更容易實現如多型等物件導向特性。一 動態建立...
在PB中如何讓使用者只能修改新增的資料
在設計資料視窗時,在所有列的background.color屬性中編寫如下表示式 ifvoqwfzippw isrownew 1090519039,long describe www.cppcns.com 程式設計客棧datawindow.color 程式設計客棧 這樣可以讓使用者知道這些行的資料為...