RichEdit檢查String作法!? |
答題得分者是:daldal
|
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
|
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
小弟實作了一下 終於試不來
不過有一個問題是 新增第2行時卻沒有變色 請問要怎麼修改 [code cpp] void __fastcall TForm1::BitBtn1Click(TObject *Sender) { int i,j; String richedit_text ; int richedit_size=0; int m_start,m_count=0; richedit_text = "ABC$DDDDDDDDDDDD$5555"; richedit_size = richedit_text.Length(); RichEdit1->Lines->Add(richedit_text); int m_flag,m_post=0,m_length; //計數字串中出現'$' for(i=0;i m_count =1; } } for(i=0;i for(j=m_post;j m_flag =1; if(m_flag==1){ //第一個出現的'$' m_start = j; } if(m_flag==2){ //第二個出現的'$' m_post = j 1; } } } m_length = (m_post-1) - m_start; RichEdit_Show(m_start,m_length 1); } } //--------------------------------------------------------------------------- void TForm1::RichEdit_Show(int start,int length) { RichEdit1->SelStart=start; RichEdit1->SelLength=length; RichEdit1->SelAttributes->Color=clBlue; } [/code] |
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
Form1裡面放一個Button1跟RichEdit1
在Button1的Click事件中寫如下程式碼 執行程式後在RichEdit輸入含有$的字串 再按下Button1 [code cpp] int iPos=0; //紀錄$字元位置 AnsiString Tmp = RichEdit1->Lines->GetText(); //用來紀錄目前輸入字串 while(Tmp.AnsiPos("$")!=0) //若含有$字元 { iPos =Tmp.AnsiPos("$"); //紀錄切割字串的新開始位置 Tmp=Tmp.SubString(Tmp.AnsiPos("$") 1,Tmp.Length()); //切割處理過的字串 RichEdit1->SelStart=iPos-1; //設定變色字段開始 RichEdit1->SelLength=Tmp.AnsiPos("$") 1; //設定變色字段長度 RichEdit1->SelAttributes->Color=clBlue; //設定變色字段顏色 iPos =Tmp.AnsiPos("$"); //紀錄切割字串的新開始位置 Tmp=Tmp.SubString(Tmp.AnsiPos("$") 1,Tmp.Length()); //切割處理過的字串 } [/code] |
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
編輯記錄
anderson8585 重新編輯於 2008-05-26 18:46:39, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |