全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2087
推到 Plurk!
推到 Facebook!

如何使用MaskEdit做一個16位必填的數字且不出現 ____

答題得分者是:shinjie
Angi
一般會員


發表:16
回覆:56
積分:14
註冊:2005-01-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-12 09:43:08 IP:211.20.xxx.xxx 未訂閱
如何使用MaskEdit做一個16位必填的數字,且不出現 ____ 因為選到MaskEdit都會設定在第16位,必需先全選,才可輸入資料,不知有無解決方法
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-12 10:27:21 IP:203.73.xxx.xxx 未訂閱
不出現____ 打開EditMask屬性編輯器,在輸入你的Mask字串後將Character for Blanks: 將'_'換成' '就可以了
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
Angi
一般會員


發表:16
回覆:56
積分:14
註冊:2005-01-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-12 12:44:12 IP:211.20.xxx.xxx 未訂閱
先謝謝shinjie,我再描述清楚一點好了 假設我們設十位 預設"__________" 換" "將變成" " 但我想要的是"",也就是不要有任何值,直到輸入後再出現"1234567890" 發表人 - Angi 於 2005/01/12 16:38:38
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-12 17:18:33 IP:218.15.xxx.xxx 未訂閱
引言: 先謝謝shinjie,我再描述清楚一點好了 假設我們設十位 預設"__________" 換" "將變成" " 但我想要的是"",也就是不要有任何值,直到輸入後再出現"1234567890" 發表人 - Angi 於 2005/01/12 16:38:38
如果您想是连续的输入十位数不需输入特殊格式,用Edit也可以实现功能啊 将edit1.MaxLength:=10;即可 ~~~静心养德~~~
Angi
一般會員


發表:16
回覆:56
積分:14
註冊:2005-01-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-13 09:20:06 IP:211.20.xxx.xxx 未訂閱
可是我的需求就是十位數字 Edit應該不可能辦到吧 曾經想過使用onClick,當onClick的時候,將欄位清空 但是這樣每key一個數字,就會被清空一次,根本無法輸入 實在想不出還有什麼方法了...
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-13 09:32:56 IP:218.15.xxx.xxx 未訂閱
引言: 可是我的需求就是十位數字 Edit應該不可能辦到吧 曾經想過使用"Verdana, Arial, Helvetica"> edit是可以办到的,小弟试了下
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  MaskEdit1.EditText:='          '; //这里空十格,MaskEdit1也能实现
  Edit1.MaxLength:=10;//限制输入的位数
  Edit1.Text:='';
end;
两种方式都可以达到您的要求,试试看
<>~~~静心养德~~~ 發表人 -
Angi
一般會員


發表:16
回覆:56
積分:14
註冊:2005-01-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-13 14:13:59 IP:211.20.xxx.xxx 未訂閱
引言 edit是可以办到的,小弟试了下 procedure TForm1.FormCreate(Sender: TObject); begin MaskEdit1.EditText:=' '; //这里空十格,MaskEdit1也能实现 Edit1.MaxLength:=10;//限制输入的位数 Edit1.Text:=''; end; 两种方式都可以达到您的要求,试试看 不好意思..還是不行也..不知是不是我不了解你的意思 Edit1.MaxLength:=10;//限制输入的位数 Edit1.Text:=''; 應該是設定Edit1為十位數,而且預設值為'' 但我要的是只能key數字的,所以應該不行吧! 至於 MaskEdit1.EditText:=' '; //这里空十格,MaskEdit1也能实现 雖然是會清空沒錯,但是卻被鎖定在第一個位子,就好像只有一位的長度一樣
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-13 14:24:28 IP:203.73.xxx.xxx 未訂閱
在Edit的#0;
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
Angi
一般會員


發表:16
回覆:56
積分:14
註冊:2005-01-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-01-13 14:51:01 IP:211.20.xxx.xxx 未訂閱
非常感謝shinjie.deity 終於做出來了,最後是用 Edit1.MaxLength:=10;//限制输入的位数 Edit1.Text:=''; 在Edit1的#0; 但由於關鍵點是在最後OnKeyPress的部份,所以給shinjie答對 不過真的很謝謝deity的熱心
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-01-13 14:53:50 IP:218.15.xxx.xxx 未訂閱
引言: 引言 edit是可以办到的,小弟试了下 procedure TForm1.FormCreate(Sender: TObject); begin MaskEdit1.EditText:=' '; //这里空十格,MaskEdit1也能实现 Edit1.MaxLength:=10;//限制输入的位数 Edit1.Text:=''; end; 两种方式都可以达到您的要求,试试看 不好意思..還是不行也..不知是不是我不了解你的意思 Edit1.MaxLength:=10;//限制输入的位数 Edit1.Text:=''; 應該是設定Edit1為十位數,而且預設值為''确良 没错 但我要的是只能key數字的,所以應該不行吧! 搞了半天原来您想要的这个,和您题目不符也,还是我的理解真的出了问题 参照 class="code"> procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in['0'..'9',#8]) then //#8为Back space键 key:=#0; end; 觉得如果只是限制其只能输入数字,建议直接用Edit就行。 至於 MaskEdit1.EditText:=' '; //这里空十格,MaskEdit1也能实现 雖然是會清空沒錯,但是卻被鎖定在第一個位子,就好像只有一位的長度一樣 您得设置好MaskEdit1的EditMask属性,如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
  MaskEdit1.EditMask:='0000000000;';
  MaskEdit1.EditText:='          ';
end;
~~~静心养德~~~
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-01-13 15:10:57 IP:203.73.xxx.xxx 未訂閱
忘了要加Backspace鍵 謝謝deity的補充 if not (key in['0'..'9',#8]) then //#8?Back space? key:=#0;
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
系統時間:2017-10-23 13:52:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!