全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1670
推到 Plurk!
推到 Facebook!

資料庫專用通用行輸入物件 設計思考

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


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-01 04:47:26 IP:220.134.xxx.xxx 訂閱

資料庫專用通用行輸入物件 設計思考

各位前輩及版主大大:

在ktop混了一段時間,最近想將一些VB(ACCESS)程式都轉為Delphi開發,雖然一般常用的函數都已經
轉換和撰寫完成,但是總覺得開發的速度還是慢(我所謂的慢是版面和物件外觀的調整還有一些資料庫
的檢查,比如新增時主鍵不可以空白,外鍵一定要存在等等),所以就想說畢其功於一役,想說看有無
辦法搞出一個元件,可以搭配基礎表單的樣板(Base Form Inheritance) )來達成物件導向一致化和簡
單化,所以.....我就亂搞了一個物件,希望能達成

目前我寫這個元件,幾乎快完成了,但是遇到一個問題,希望能能跟ktop的前輩討論
===========================================================================================
若我說明的不清楚,請告知我,我作一個Falsh的動畫檔,放到網路上,這樣應該會清楚些!

物件開發專案的說明Doc連結

http://140.125.88.4/doc/yaotest/20061001_VCL4DB.doc

===========================================================================================
我遭遇到的問題2006/09/29

1. ShowLable無法在表單一進入就顯示,因為我的ShowLable是寫在dbedit的OnChange和OnExit時去更新,
我有試著在建構子、建立物件初始狀態去,更新ShowLable的顯示,但是因為Create狀態時,dbedit並無法
捉到DBEDIT.TEXT值

constructor YaoEdit.Create(AOwner: TComponent); // 建構子、建立物件初始狀態
begin
inherited Create(AOwner)
我試著
1.在DBEDIT的DataSource切換Set和Get時去顯示,但是FORM表單一啟動也無法去捉dbedit的text值去相對
尋找要顯示的ShowLable值
2.想寫在在DBEDIT的DataField切換也一樣無法!

我的物件宣告是
type
YaoEdit = class(TWinControl)
private
{ Private declarations }

不知道TWinContro這個類別,有什麼屬性類似Form 的OnShow 可以讓我這個元件,在Form一開啟時,就讓我
定義的VCL元件,就以去執行更新ShowLable的更新函數!

不知道這樣講,各位前輩和版主,理解我的問題點所在,若我講的不清楚,請告知我,我作一個
Falsh的動畫檔,放到網路上,這樣應該會清楚些!

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


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

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

1. ShowLable無法在表單一進入就顯示,因為我的ShowLable是寫在dbedit的OnChange和OnExit時去更新,
我有試著在建構子、建立物件初始狀態去,更新ShowLable的顯示,但是因為Create狀態時,dbedit並無法
捉到DBEDIT.TEXT值

constructor YaoEdit.Create(AOwner: TComponent); // 建構子、建立物件初始狀態
begin
inherited Create(AOwner)
我試著
1.在DBEDIT的DataSource切換Set和Get時去顯示,但是FORM表單一啟動也無法去捉dbedit的text值去相對
尋找要顯示的ShowLable值
2.想寫在在DBEDIT的DataField切換也一樣無法!

我的物件宣告是
type
YaoEdit = class(TWinControl)
private
{ Private declarations }

在 Component Create 時當然抓不到資料(DataSource 相關 Object 還沒有Instances)

你要顯示資料要在 Loaded 中處理(此Component 已經Created)

protected
procedure Loaded; override;

procedure TYaoEdit.Loaded;
begin
inherited Loaded;
// 處理顯示 ShowLable
end;

不過你是繼承自 TWinControl 有很多要自己處理, 繼承 TCustomMaskEdit 或 TDBEdit 是比較建議的方式

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


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-10-02 20:50:14 IP:220.134.xxx.xxx 訂閱

danny 前輩大人:

感謝您一語道破夢中人,問題終於解決了!真是感謝您!

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