線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1505
推到 Plurk!
推到 Facebook!

VCL元件,不知道複合式元件可不可動態建立物件?

答題得分者是:danny
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-09-13 08:08:19 IP:220.134.xxx.xxx 訂閱


各位前輩:

我有一個突發奇想,不知道是否可以執行。當我們宣告VCL元件(複合式元件就是包含一個以上的基本元件)時都會定義這個元件
有哪些元件項目TYPE,且都需要於constructor去建立該物件的實體,我在想一個物件的設計方式,就是我在我欲設計的元件中

加入一個切換(日期我用PickDateTime、文字我用EDIT),但是TYPE段我都會將各種型態的物件先宣告,我想要於constructor
才去決定我這個vcl元件,哪些實體才需要建立(我目前是全部要使用的基本元件都於constructor建立,由該物件Visible去決定
顯示不顯示),但是我想這個方法非常不好,因為應該form的DB欄位一多,會很耗用記憶體(我另外一個想法是記憶體反正很便宜)

所以想做動態的建立選擇,不知道這樣的天馬行空想像,是否合理和可行!


==================================================================
感謝回應的前輩、KTOP真是有人情味的好所在!

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-09-14 11:02:56 IP:211.76.xxx.xxx 未訂閱

可行, TDBGrid 內的 DataEdit 就是動態建立的, 並於 free DBGrid 時再 Free

DBGrid有時只是要用來 display data 而已 , 這時 DataEdit 並不需要.


===================引 用 文 章===================
各位前輩:

我有一個突發奇想,不知道是否可以執行。當我們宣告VCL元件(複合式元件就是包含一個以上的基本元件)時都會定義這個元件
有哪些元件項目TYPE,且都需要於constructor去建立該物件的實體,我在想一個物件的設計方式,就是我在我欲設計的元件中

加入一個切換(日期我用PickDateTime、文字我用EDIT),但是TYPE段我都會將各種型態的物件先宣告,我想要於constructor
才去決定我這個vcl元件,哪些實體才需要建立(我目前是全部要使用的基本元件都於constructor建立,由該物件Visible去決定
顯示不顯示),但是我想這個方法非常不好,因為應該form的DB欄位一多,會很耗用記憶體(我另外一個想法是記憶體反正很便宜)

所以想做動態的建立選擇,不知道這樣的天馬行空想像,是否合理和可行!


==================================================================
感謝回應的前輩、KTOP真是有人情味的好所在!

------
將問題盡快結案也是一種禮貌!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-09-15 02:54:46 IP:220.134.xxx.xxx 訂閱
感謝前輩的解答,有您的回應讓我學習前進更有動力!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-09-15 02:58:39 IP:220.134.xxx.xxx 訂閱

對了!前輩忘記在請教,因為是複合元件的VCL,所以published區段可能property也希望能選擇搭配的項目。

不知道是否property也能依照VCL元件內的欄位去決定要有哪些property,真是越想越複雜。

不過能動態產生,已經是很棒啦!

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-09-17 14:45:55 IP:211.76.xxx.xxx 未訂閱

一旦宣告為published property 後, 繼承的元件就無法再隱藏了.

這也是為何 Delphi 的標準元件類別(如TCustomXXX 之類) 大部份是宣告在 public or protected 的原因.

詳細的說明請參閱拙著: Delphi 元件設計初步(一)


===================引 用 文 章===================

對了!前輩忘記在請教,因為是複合元件的VCL,所以published區段可能property也希望能選擇搭配的項目。

不知道是否property也能依照VCL元件內的欄位去決定要有哪些property,真是越想越複雜。

不過能動態產生,已經是很棒啦!

------
將問題盡快結案也是一種禮貌!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-09-18 01:39:23 IP:220.134.xxx.xxx 訂閱

danny 前輩:

感謝您的回應,原來是Delphi 元件設計初步(一) 作者danny前輩,您的回應真是榮幸!

因為您撰寫的文件,是我的vcl入門文件之一!

我想現在唯一能作的,就是將各種屬性都放上去,不知道這樣的物件設計方式,有無缺點!

我會繼續嘗試的!

------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
系統時間:2024-05-12 2:23:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!