全國最多中醫師線上諮詢網站-台灣中醫網
上鎖的討論區 上鎖的討論區 瀏覽次數:1212
推到 Plurk!
推到 Facebook!

程式控制DBNavigator的按鈕狀態

尚未結案
may
一般會員


發表:32
回覆:26
積分:11
註冊:2003-02-11

發送簡訊給我
#1 發表時間:2003-05-27 15:53:16 IP:203.160.xxx.xxx 未訂閱
請問各問先進,以下的需求該如何完成呢?謝謝!! procedure TForm3.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin if (trim(DBGrid1.DataSource.DataSet.FieldByName('id_no').AsString)='') then BEGIN Showmessage('身分證字號不可為空白'); 此時不可做POST的動作,且游標停留在該欄位上。 End; end;
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#2 發表時間:2003-05-27 16:36:20 IP:210.66.xxx.xxx 未訂閱
我的方法是在TField的OnValidate做處理,而不是在存檔時才去判斷!參考看看! Ian
may
一般會員


發表:32
回覆:26
積分:11
註冊:2003-02-11

發送簡訊給我
#3 發表時間:2003-05-28 09:45:25 IP:210.202.xxx.xxx 未訂閱
謝謝,我照你的方法是OK的,但是還有一些小問題,就是如何告訴使用者輸入錯誤呢? 1.DBGrid1是在Unit3中 2.目前在Unit2中,且也Use Unit3 3.可是在執行時就出現『[Error] Unit2.pas(117): Undeclared identifier: 'Showmessage'』,請問是何原因呢? procedure TDataModule2.Unit_year_planid_noValidate(Sender: TField); begin if (unit3.Form3.DBGrid1.DataSource.DataSet.FieldByName('id_no').AsString='') then BEGIN Showmessage('身分證字號不可為空白');------>這行就出錯了 Abort; End;
may
一般會員


發表:32
回覆:26
積分:11
註冊:2003-02-11

發送簡訊給我
#4 發表時間:2003-05-28 10:03:44 IP:203.160.xxx.xxx 未訂閱
另外我也發現一個問題,就是如果寫在『noValidate』事件中,那使用者如果沒有點選該DataGrid的欄位的話,該事件也無法觸動,也就是沒有辦法驗證了,所以是否有解決的方法呢?謝謝!!
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#5 發表時間:2003-05-28 10:51:01 IP:210.66.xxx.xxx 未訂閱
試試看用 if Sender.AsString = '' then begin Showmessage('身分證字號不可為空白'); Abort; end; 不用去指到DBGrid1的方法了! 可是在執行時就出現『[Error] Unit2.pas(117): Undeclared identifier: 'Showmessage'』,請問是何原因呢? 妳有 uses Dialogs嗎? 妳說的使用者沒有點選該欄位,那是不是指沒有去變動該欄位的值呢?這樣沒有觸發應該是正常的吧? 小弟的說法如果有錯,請各位先進多多指教!謝謝! Ian
系統時間:2024-05-05 11:06:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!