GetText與SetText的問題? |
答題得分者是:T.J.B
|
channel
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
T.J.B
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
1:OnGetText ---> 當你想要顯示的資料與資料庫的資料不同時 即可用此事件
例如 :
if Query1.FieldByName('Sex').asstring = 'M' then Edit1.Text := '男' else Edit1.Text := '女';2:OnSetText -->直接將參數 Text指定回去給Sender 例如 : Sender.Value :=strtoint(Trim(Text)); //Sender 為數字型態< >< > 天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
channel
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
T.J.B
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
channel
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
rachex2000
一般會員 ![]() ![]() 發表:21 回覆:32 積分:20 註冊:2003-04-28 發送簡訊給我 |
我在OnGetText事件中沒寫任何程式
<textarea cols="60" rows="10" class="delphi" name="code">
procedure TDM.Table1AFieldOnGetText(var Text: String; DisplayText: Boolean);
begin
//沒寫任何東西
end;
</textarea>
結果Table1的AField欄位在TDBGrid上顯示為空值,除非取消
OnGetText property指向以上事件,
照說我對參數沒做更動,當然是用原來的值,這是VCL原來的設計嗎?為何要這樣?
|
sryang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
rachex2000
一般會員 ![]() ![]() 發表:21 回覆:32 積分:20 註冊:2003-04-28 發送簡訊給我 |
|
sryang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
我們來看一下 TField 的原始程式碼,就可以解釋你的疑問
這是 Text 屬性的宣告: <textarea cols="80" rows="1" class="delphi" name="code">property Text: string read GetEditText write SetEditText; </textarea> Text 屬性,取值時是呼叫 GetEditText 設值時是呼叫 SetEditText 這是 OnGetText 事件的宣告 <textarea cols="80" rows="1" class="delphi" name="code">property OnGetText: TFieldGetTextEvent read FOnGetText write FOnGetText; </textarea> OnGetText 事件的事件指標用 FOnGetText 變數來存放 而 GetEditText 內容是這樣的 <textarea cols="80" rows="6" class="delphi" name="code"> function TField.GetEditText: string; begin Result := ''; if Assigned(FOnGetText) then FOnGetText(Self, Result, False) else GetText(Result, False); end; </textarea> 我們可以看到,Assigned(FOnGetText) 時,會執行 OnGetText,否則就執行 GetText 這就解釋了你寫的 OnGetText 事件中,若沒有指定 Text 引數的值時,Text 屬性就是空白的狀況了
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
rachex2000
一般會員 ![]() ![]() 發表:21 回覆:32 積分:20 註冊:2003-04-28 發送簡訊給我 |
已刪
編輯記錄
rachex2000 重新編輯於 2007-07-20 16:52:00, 註解 無‧
|
rachex2000
一般會員 ![]() ![]() 發表:21 回覆:32 積分:20 註冊:2003-04-28 發送簡訊給我 |
|
sryang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
HireMan
一般會員 ![]() ![]() 發表:0 回覆:12 積分:2 註冊:2004-12-02 發送簡訊給我 |
GetText ,SetText?
其实遇到些问题时可以浏览borland 给我们的sourcecode,GetText,SetText如何处理的,相信问题就很快得到解决.也因有这种学习方式能力提高很快. === 分享快乐: www.delphichm.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |