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

MaskEdit顯示問題

尚未結案
sj123
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-15 17:29:17 IP:61.222.xxx.xxx 未訂閱
請問大家: 我有一個MaskEdit元件,他的EditMask為LLSSSS,當我給他的Text值為'SNSSSS'時,SN會帶不出來,只顯示__SSSS,為什麼?
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-15 17:37:17 IP:218.80.xxx.xxx 未訂閱
你看看这个控件的EDITMASK属性,可能那里设置不对
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-15 17:43:21 IP:210.64.xxx.xxx 未訂閱
你好 在editmask屬性裡面並沒有S的定義,所以它會直接顯示出SSSS的字串,建議你先看一下help裡面TCustomMaskEdit.EditMask的說明!! Pillar Wang
------
Pillar Wang
sj123
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-15 18:12:42 IP:61.222.xxx.xxx 未訂閱
EditMask沒有SSSS,但直接帶出SSSS是我要的,只是前面的LL就無法把我給他的值"SN"帶出了,是因為SSSS不在EditMask裡,以致造成前面"SN"字元顯示不出來?
gac
初階會員


發表:2
回覆:28
積分:26
註冊:2004-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-15 20:51:57 IP:220.130.xxx.xxx 未訂閱
我想你的意思是,"??SSSS" 四個 "S" 是固定要出現的,而讓使用者輸入兩個 "?" 吧?! EditMask 為 "LLSSSS",應該沒錯! 試試將 Text值 改為 "__SSSS" 再操作看看! 我..........還很嫩!
------
我..........還很嫩!
gac
初階會員


發表:2
回覆:28
積分:26
註冊:2004-08-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-15 20:53:35 IP:220.130.xxx.xxx 未訂閱
忘了貼..... 還可以參考這篇 : 【Delphi】【問題】edit 的 mask 特殊用法  http://delphi.ktop.com.tw/topic.php?topic_id=34487 我..........還很嫩!
------
我..........還很嫩!
sj123
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-03-16 16:33:38 IP:61.222.xxx.xxx 未訂閱
我寫的語法如下: MaskEdit1.EditMask:='LLSSSS'; MaskEdit1.Text:='SNSSSS'; 我希望Msakedit顯示出來的內容是SNSSSS,但是用上述方法顯現出來的結果卻是__SSSS,且如果前兩位不是SN,而是其他的文字,例如AA,則顯示AASSSS沒問題,這是為什麼呢?
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-03-16 17:39:02 IP:210.64.xxx.xxx 未訂閱
你好 我剛剛測試了一下,發現問題是在於如果你的EditMask用'LLSSSS'的時候,那在你前面的文字不可以有S但是可以有小寫的s,應該說就是會和你定義的L後接的第一個文字有關係,如果你用A,那在前面的字串中就不可以有A的字出現,至於會出現__SSSS是因為你在給值的時候,所給的值根本就進不去,所以會顯示原來的文字!!至於為什麼,還在追查當中!!順便問一下,這樣做的需求是在什麼地方呢??或許有其他方法可以解決你的需求喔!! Pillar Wang
------
Pillar Wang
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-03-16 17:49:07 IP:202.62.xxx.xxx 未訂閱
您好﹗    因為S字元已經設定在EditMask屬性中做為固定字元了﹐所以如果開頭的字元為S時﹐其后面的字元都不能做以指定﹐直到EditMask中設定的非遮罩字元S出現﹒ 如果是在程式碼中指定MaskEdit元件的Text屬性值的話﹐為何不直接把EditMask屬性設為LLLLLL﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-03-16 17:59:39 IP:210.64.xxx.xxx 未訂閱
謝謝cashxin2002版主大大的解說,了解了!! Pillar Wang
------
Pillar Wang
sj123
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-03-17 12:29:12 IP:61.222.xxx.xxx 未訂閱
先感謝大家的回應 因為後面四位SSSS是不允許修改的 所以如果設定為'LLLLLL',那達不到此要求
gac
初階會員


發表:2
回覆:28
積分:26
註冊:2004-08-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-03-17 13:09:09 IP:220.130.xxx.xxx 未訂閱
我試了一下,在中間加個空格或減號,都可以達到目的...    MaskEdit1.EditMask:='LL SSSS'; MaskEdit1.Text:='SN SSSS';    或    MaskEdit1.EditMask:='LL-SSSS'; MaskEdit1.Text:='SN-SSSS';    但恐怕也不是您要的吧?! 繼續努力中....  ---------------------- 我..........還很嫩!
------
我..........還很嫩!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-03-17 14:09:41 IP:202.62.xxx.xxx 未訂閱
您好﹗    如果是這樣的話﹐小弟有個變向的方法﹐供您參考一下﹕ 將MaskEdit元件的EditMask屬性設為LLllll;1;_ //前兩個為大寫的L﹐而后面四個為小寫的l 然后在給值的時候﹐用程式碼控制﹕
procedure TForm1.Button1Click(Sender: TObject);
begin
  MaskEdit1.Text := Copy(MaskEdit1.Text,1,2) + 'SSSS';
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
系統時間:2024-06-29 17:05:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!