程式控制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
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |