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

BCB限制Edit只能輸入數字該如何設定!?

答題得分者是:s92405054
Ryan7517
一般會員


發表:3
回覆:11
積分:2
註冊:2010-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-03 00:05:10 IP:220.135.xxx.xxx 訂閱
各位先進~我的問題是~~Edit我是否只能設定輸入數字!!!!

我該如何從屬性去做設定!!!!!
s92405054
高階會員


發表:7
回覆:49
積分:101
註冊:2009-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-03 16:56:52 IP:60.248.xxx.xxx 訂閱
我也不會= =
但是土法煉鋼一下
先將屬性ReadOnly改為True
然後在KeyDown事件下
[code cpp]
int i=0;
if ((Key>=0x30)&&(Key<=0x39))
{
i= Key-0x30;//取得實際數值
Edit1->Text = Edit1->Text IntToStr(i);
}
else if (Key==0x08) Edit1->Text = Edit1->Text.SubString(1,Edit1->Text.Length()-1);//按下清除的按鈕"←"
Edit1->SelStart = Edit1->Text.Length();
[/code]
其他功能自行增加~^^"
===================引 用 Ryan7517 文 章===================
各位先進~我的問題是~~Edit我是否只能設定輸入數字!!!!

我該如何從屬性去做設定!!!!!
編輯記錄
s92405054 重新編輯於 2010-12-03 02:17:10, 註解 無‧
Ryan7517
一般會員


發表:3
回覆:11
積分:2
註冊:2010-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-12-04 01:07:44 IP:122.116.xxx.xxx 訂閱
謝謝您阿~~~
非常感謝你的指導~~我終於可以讓我的介面更完善了!!!
謝謝~

===================引 用 s92405054 文 章===================
我也不會= =
但是土法煉鋼一下
先將屬性ReadOnly改為True
然後在KeyDown事件下
[code cpp]
int i=0;
if ((Key>=0x30)&&(Key<=0x39))
{
i= Key-0x30;//取得實際數值
Edit1->Text = Edit1->Text IntToStr(i);
}
else if (Key==0x08) Edit1->Text = Edit1->Text.SubString(1,Edit1->Text.Length()-1);//按下清除的按鈕"←"
Edit1->SelStart = Edit1->Text.Length();
[/code]
其他功能自行增加~^^"
===================引 用 Ryan7517 文 章===================
各位先進~我的問題是~~Edit我是否只能設定輸入數字!!!!

我該如何從屬性去做設定!!!!!
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-12-27 16:48:31 IP:112.105.xxx.xxx 訂閱
 雖然已經結案,但提供另一方向;
用API實現數值型Edit
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 用API實現數值型Edit
DWord fstyle;
fstyle = GetWindowLong(Edit1->Handle, GWL_STYLE); // 宣告Edit1輸入僅為數字
SetWindowLong(Edit1->Handle, GWL_STYLE, fstyle | ES_NUMBER | ES_RIGHT); // fstyle or ES_NUMBER
}

以上供參考!
------
Andy Chang
s92405054
高階會員


發表:7
回覆:49
積分:101
註冊:2009-04-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-12-29 09:14:03 IP:60.248.xxx.xxx 訂閱
學習學習~
感謝 andychang1690大大提供新方法~方便多囉
===================引 用 andychang1690 文 章===================
雖然已經結案,但提供另一方向;
用API實現數值型Edit
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 用API實現數值型Edit
DWord fstyle;
fstyle = GetWindowLong(Edit1->Handle, GWL_STYLE); // 宣告Edit1輸入僅為數字
SetWindowLong(Edit1->Handle, GWL_STYLE, fstyle | ES_NUMBER | ES_RIGHT); // fstyle or ES_NUMBER
}

以上供參考!
papjaj
一般會員


發表:11
回覆:15
積分:5
註冊:2007-01-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-01-31 15:46:55 IP:220.130.xxx.xxx 訂閱
我也是土法煉鋼
不過我是在editor1的even裡的keypress裡

去判斷
如果key > 9 或 key < 0
那就自己把key = 0

這樣他只要不是輸入數是
都不會出現在editor裡面
也就是無法輸入

如果很多個editor都要這樣的話
就在一開始的地方
把所有editor的keypress指到同一個函式就行了
這樣所有的editor都會變成一樣的功能
系統時間:2017-12-14 21:14:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!