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

TDBEdit元件限制輸入的數字範圍

答題得分者是:P.D.
con99
一般會員


發表:1
回覆:2
積分:5
註冊:2011-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-04-04 11:09:00 IP:59.125.xxx.xxx 訂閱
各位前輩好:

有一個欄位使用TDBEdit元件,想限制輸入的數字範圍,
例如:
有一個 '重量'(值的範圍為0.0~99.9)的欄位,
每當輸入的值超過最高上限時,程式都會中斷,且出現錯誤訊息
但我希望能夠程式不中斷,出現**自訂的錯誤訊息**,焦點仍停留在該欄位
,不能移至其它欄位。
因在2~3個from都會用到,且約有10個左右的欄位,每個欄位的值範圍
還都不一樣。
這該如何解決?能夠只有寫一個函式就解決嗎?
目前有找到TQuery->TFloatField中的MaxValue、MinValue
但不知道要如何使用 T_T~

剛學Delphi不久, 爬文爬到眼冒星星 Q_Q
還請各位前輩指點一二,感謝~
------
健忘老人....Orz
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-04-04 20:28:50 IP:118.169.xxx.xxx 未訂閱
你可以直接利用 TFieldl中的 EditMask 來指定即可
例如
myTable.Open;
myTable.FieldByName('myField').EditMask:= '99.9;0';
=============引 用 con99 文 章===================
各位前輩好:

有一個欄位使用TDBEdit元件,想限制輸入的數字範圍,
例如:
有一個 '重量'(值的範圍為0.0~99.9)的欄位,
每當輸入的值超過最高上限時,程式都會中斷,且出現錯誤訊息
但我希望能夠程式不中斷,出現**自訂的錯誤訊息**,焦點仍停留在該欄位
,不能移至其它欄位。
因在2~3個from都會用到,且約有10個左右的欄位,每個欄位的值範圍
還都不一樣。
這該如何解決?能夠只有寫一個函式就解決嗎?
目前有找到TQuery->TFloatField中的MaxValue、MinValue
但不知道要如何使用 T_T~

剛學Delphi不久, 爬文爬到眼冒星星? Q_Q
還請各位前輩指點一二,感謝~
con99
一般會員


發表:1
回覆:2
積分:5
註冊:2011-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-04-07 17:17:14 IP:60.249.xxx.xxx 訂閱
前輩謝謝
這樣設是OK, 但EditMask不太好用T_T...

後來我的解決方法是在OnSetText下,寫檢查的程式,且設定MaxValue
本來是要寫在OnValidate下, 但還是會中斷程式,出現錯誤訊息 Orz....
只好改寫在OnSetText下

[code delphi]
procedure TF.NumberCheckSetText(Sender: TField; const Text: String);
var num, MaxNum : Double;
s_num, s_MaxNum:string;
begin
num:= strtofloat(Text);
MaxNum := TFloatField(Sender).MaxValue;
s_num := floattostr(num);
s_MaxNum := floattostr(MaxNum);
g_NowForm.SetFocus; //g_NowForm是存現在是在哪個視窗
if ( num > MaxNum) then
begin
MessageBox(handle, PChar('您輸入' s_num ',已超過此欄位的上限值:' s_MaxNum), '警告訊息!!',MB_Iconwarning);
Sender.AsFloat := MaxNum;
abort;
end
else
begin
Sender.AsFloat := num;
end;
end;

[/code]

===================引 用 P.D. 文 章===================
你可以直接利用 TFieldl中的 EditMask 來指定即可
例如
myTable.Open;
myTable.FieldByName('myField').EditMask:= '99.9;0';

------
健忘老人....Orz
系統時間:2024-06-29 8:22:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!