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

為何在設計時期所設的值,在啟始執行時期時會遺失掉?

答題得分者是:Justmade
firefall
一般會員


發表:22
回覆:36
積分:11
註冊:2002-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-12 06:10:11 IP:211.74.xxx.xxx 未訂閱
小弟做了一個新的元件,包含了Table 與DataSource,小弟在設計時期時期,將各個屬性設定好(TableName、DataBaseName、Active),但執行時卻無反應, 小弟在測試時把DbGrid的DaTaSource指向元件時發現,元件的TableName、DataBaseName,名稱皆存在,但將元件裡的Table設為Active時出現"missing TableName Property "?? why,請知道的大大指點。 TTableModify = class(Tcomponent) private FMainDataSource: TDataSource; FMainData: TTable; ... public Procedure SetMainData(Value:TTable); Procedure SetMainDataSource(Value:TDataSource); constructor Create(AOwner: TComponent);Override; destructor Destroy;Override; { Public declarations } published Property MainData:TTable Read FMainData write SetMainData; Property MainDataSource:TDataSource Read FMainDataSource write SetMainDataSource; { Published declarations } end; procedure TTableModify.SetDataBaseName(Value: String); begin FDataBaseName:=Value; end; procedure TTableModify.SetMainData(Value: TTable); begin FMainData.Assign(Value); end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-12 08:23:17 IP:218.16.xxx.xxx 未訂閱
你的設計好像有點怪... 1. FMainData.Assign(Value); 是從 Value 複制一個 Instance 到你的 FMainData 之後與原 Table 沒有關係而且若你沒有設定 SubComponent 的話這個內置 TTable 的資料是不會被儲存的 一般來說若你想將這個元件的 MainData 連結至選定的 TTable 直接用 FMainData := Value; 就好 2. SetDataBaseName 時不是應也設定 FMainData 的 DatabaseName 嗎 ? 3. TTableModify 是 TComponent 又不是 DataSources 的後代 甚可以指級 DBGrid 的 DataSources? 不過你沒說清楚你的用途及看不到其他程式碼所以比較難下定論。
系統時間:2024-05-17 2:56:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!