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

如何對RichEdit中某一行作彩色方式顯示?

答題得分者是:hagar
nick_chen
一般會員


發表:9
回覆:5
積分:2
註冊:2003-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-30 19:05:10 IP:210.66.xxx.xxx 未訂閱
各位使用Delphi的前輩: 請問如何對RichEdit中某一行作彩色方式顯示? 我已可以讀取RichEdit中某一行,但是在作顏色處理時, 發現永遠都在處理第一行,以下是我的程式內容: StringText :=RichEdit1.Lines.Strings[20]; //讀取第二十行的文字 for j:=1 to length(StringText) do begin RichEdit1.SelStart:=j-1 ; RichEdit1.SelLength:=1 ; case StringText[j] of // 判斷文字為何,作顏色的處理 'M' : RichEdit1.SelAttributes.Color:=clYellow ; '1' : RichEdit1.SelAttributes.Color:=clGreen ; '2' : RichEdit1.SelAttributes.Color:=clRed ; '3' : RichEdit1.SelAttributes.Color:=$000080FF ; end
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-30 22:56:50 IP:202.39.xxx.xxx 未訂閱
SelStart 的值錯了, 如下:
var
  i, j: integer;
  iSelStart: integer;
begin
  // 游標停在第 20 行開頭
  with RichEdit1 do begin
    SelStart := Perform(EM_LINEINDEX, 20, 0);
    Perform(EM_SCROLLCARET, 0, 0);  
    SetFocus;
  end;
  // 計算停在第 20 行時的 SelStart 值
  iSelStart := 0;
  for i := 0 to 20-1 do
    iSelStart := iSelStart   Length(RichEdit1.Lines[i])   2; // 加 2 是加上 #13#10 這兩個字元
   
  // 以下是處理字的顏色
  StringText :=RichEdit1.Lines.Strings[20]; //讀取第二十行的文字
  for j := 1 to Length(StringText) do
  begin
    RichEdit1.SelStart := iSelStart  j-1;
    RichEdit1.SelLength:=1;
    case StringText[j] of // 判斷文字為何,作顏色的處理
      'M' : RichEdit1.SelAttributes.Color:=clYellow ;
      '1' : RichEdit1.SelAttributes.Color:=clGreen ;
      '2' : RichEdit1.SelAttributes.Color:=clRed ;
      '3' : RichEdit1.SelAttributes.Color:=$000080FF ;
    end;
  end;
end;
--- --<-<-<@
系統時間:2024-11-25 2:30:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!