MaskEdit 使用問題 |
答題得分者是:chenyk
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
我有一個設定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 發送簡訊給我 |
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
|
chenyk
高階會員 發表:14 回覆:95 積分:171 註冊:2002-07-08 發送簡訊給我 |
我手上沒有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 是個總是讓人充滿驚喜的東西 |
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
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 發送簡訊給我 |
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
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 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |