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

MaskEdit 使用問題

答題得分者是:chenyk
small7011
一般會員


發表:19
回覆:34
積分:10
註冊:2007-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-01-13 15:38:46 IP:211.20.xxx.xxx 訂閱
我有一個設定EditMask問題,我想利用TComboBox 來切換,我要用同一MaskEdit元件來變換多種模式,
第一種 0x______
第二種 0x__

0x要固定不能被修改,後段只能輸入0~9和A~Z,而我用以下方式0x可以被刪除,希望可以幫我解答,謝謝

[code cpp]
if(cboSensor->ItemIndex!=4)
{
msk4800Core->EditMask = "\0xAA;1;_";
msk4800Core->Text="0x";
}
else if(cboSensor->ItemIndex==4)
{
msk4800Core->EditMask = "\0xAAAAAA;1;_";
msk4800Core->Text="0x";
}
[/code]


------
lee
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-01-13 16:22:07 IP:125.230.xxx.xxx 訂閱
我照著你貼的程式碼,怎麼試 0x 都不會被刪掉
我用的是 delphi 7
會不會你在某段程式碼讓 EditMask 屬性的內容遺失,
所以才會變成可以刪除?
small7011
一般會員


發表:19
回覆:34
積分:10
註冊:2007-07-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-01-13 16:34:09 IP:211.20.xxx.xxx 訂閱
我用的是BCB6 ,我只利用Onchange事件來改變,這樣會改變EditMask 屬性嗎?
===================引 用 chenyk 文 章===================
我照著你貼的程式碼,怎麼試 0x 都不會被刪掉
我用的是 delphi 7
會不會你在某段程式碼讓 EditMask 屬性的內容遺失,
所以才會變成可以刪除?
------
lee
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-01-14 08:46:53 IP:125.230.xxx.xxx 訂閱
我手上沒有bcb6 只能建議你:
1. 開個新專案,直接設定屬性表的 EditMask 屬性,確認狀況是否相同
2. 你要不要試一下把程式段改成
if(cboSensor->ItemIndex!=4)
{
msk4800Core->EditMask = "\0xAA;1;_";
msk4800Core->Text="0x";
} else //if(cboSensor->ItemIndex==4)
{
msk4800Core->EditMask = "\0xAAAAAA;1;_";
msk4800Core->Text="0x";
}
確保msk4800Core->EditMask = "\0xAAAAAA;1;_" 一定會在cboSensor->ItemIndex=4 被執行到雖然理論上跟你的程式段結果會一樣,但事實上 BCB 是個總是讓人充滿驚喜的東西
編輯記錄
chenyk 重新編輯於 2009-01-14 08:48:34, 註解 無‧
chenyk 重新編輯於 2009-01-14 08:49:47, 註解 無‧
small7011
一般會員


發表:19
回覆:34
積分:10
註冊:2007-07-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-01-14 09:54:21 IP:211.20.xxx.xxx 訂閱
1.我有開一個新專案,直接設定屬性表的EditMask 屬性,狀況與我寫在OnChange事件的並不相同.
2.我確認過,我每次改變cboSensor->ItemIndex=4 都會執行到.
3.不過,後來我自己亂試之後,發現寫成這種方式0x就不會不見
[code cpp]
if(cboSensor->ItemIndex!=4)
{
msk4800Core->EditMask = "\\0xAA;1;_";
msk4800Core->Text="0x";

}
else if(cboSensor->ItemIndex==4)
{
msk4800Core->EditMask = "\\0xAAAAAA;1;_";
msk4800Core->Text="0x";
}
[/code]
我查過TEditMask符號表用法 "\" 應該是要使某一字元變成特殊符號,



===================引 用 chenyk 文 章===================
我手上沒有bcb6 只能建議你:
1. 開個新專案,直接設定屬性表的 EditMask 屬性,確認狀況是否相同
2. 你要不要試一下把程式段改成
if(cboSensor->ItemIndex!=4)
{
msk4800Core->EditMask = "\0xAA;1;_";
msk4800Core->Text="0x";
} else //if(cboSensor->ItemIndex==4)
{
msk4800Core->EditMask = "\0xAAAAAA;1;_";
msk4800Core->Text="0x";
}
確保msk4800Core->EditMask = "\0xAAAAAA;1;_" 一定會在cboSensor->ItemIndex=4 被執行到雖然理論上跟你的程式段結果會一樣,但事實上 BCB 是個總是讓人充滿驚喜的東西
直接設定元件屬性是可以,但是寫成程式碼卻不行,所以我還是不了解
------
lee
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-01-14 12:45:22 IP:125.230.xxx.xxx 訂閱
根據你的測試,問題是出在 "\"
在 C or BCB 語言,"\"的用途是為了在字串中加入特殊符號,如: \t \n \x 之類的
因此當你使用 \0... 0被轉成了特殊符號,所以必須在加一個斜線才能讓系統讀到正確的字串
畫面上的 0x 應該是 mask->text 產生的,而不是 Editmask
你可以試著將 mask->text 改成 其他字串,例如: aa
就能知道結果了
small7011
一般會員


發表:19
回覆:34
積分:10
註冊:2007-07-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-01-14 15:01:02 IP:211.20.xxx.xxx 訂閱
0x的確是Mask->Text產生的,假如我直接在Mask元件屬性上修改,Mask->Text位置自動會產生0x
而我自己編寫程式時,問題是出在 "\",假如我將"\"後面改成其他字元,例如 \a ,\b 等等卻又可以
所以我想問題點在於"\"使用上,謝您提供給我的訊息.

===================引 用 chenyk 文 章===================
根據你的測試,問題是出在 "\"
在 C or BCB 語言,"\"的用途是為了在字串中加入特殊符號,如: \t \n \x 之類的
因此當你使用 \0... 0被轉成了特殊符號,所以必須在加一個斜線才能讓系統讀到正確的字串
畫面上的 0x 應該是 mask->text 產生的,而不是 Editmask
你可以試著將 mask->text 改成 其他字串,例如: aa
就能知道結果了
------
lee
P.D.
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-01-14 17:47:19 IP:61.67.xxx.xxx 未訂閱
1.補充一下, 這是Delphi的討論區, 你是bcb的話, 應該到 bcb區發表才對
2.在Delphil 中, 遇到這類狀況 我們使用Editmask 是 \0\ Xaaaaaa
這是\後面的符號會被認定是固定字元不可被編輯, 一個字元一個\
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-01-14 18:32:48 IP:118.169.xxx.xxx 訂閱
幫忙移到BCB VCL討論區
small7011
一般會員


發表:19
回覆:34
積分:10
註冊:2007-07-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-01-14 19:07:51 IP:211.20.xxx.xxx 訂閱
對不起,我沒有注意到我發錯討論區,真不好意思
移到BCB VCL 版是不是只有版主才有權限,那就麻煩了
------
lee
系統時間:2024-04-25 18:27:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!