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

請教RichEdit,如何判斷選取的文字已經透過SelAttributes變色過

答題得分者是:terrychen
eveling
一般會員


發表:2
回覆:5
積分:1
註冊:2004-01-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-13 10:19:20 IP:61.63.xxx.xxx 未訂閱
請教各位大大~~ 如何判斷RichEdit內的文字已經變色過, 若再選取去設定顏色時,會出現訊息,告知"該文字已設定過"。 例如:RichEdit內有'ABCD'字串(Default:黑色), 若經過設定結果變成: 'AB'為黑色,'CD'為紅色, 當選取ABCD要設定顏色時,希望它出現"該文字已設定過"訊息。 謝謝!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-13 10:38:39 IP:61.221.xxx.xxx 未訂閱
您好:
  if RichEdit1.SelAttributes.Color <> clblack then
    Showmessage('變過色');
~~應無所住而生其心~~
eveling
一般會員


發表:2
回覆:5
積分:1
註冊:2004-01-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-13 11:11:20 IP:61.63.xxx.xxx 未訂閱
謝謝terrychen大大,您說的方法我之前試過, 該法僅限於選擇'CD'字串才判斷的到, 選擇'ABCD'無法判斷到, 因第一個'A'為clBlack,所以它不會判斷出來。
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-13 11:29:52 IP:211.22.xxx.xxx 未訂閱
您好:
Var
  i: integer;
  AA:boolean;
begin
  aa:= False;
  for i:= 0 to length(RichEdit1.SelText) do
  begin
    RichEdit1.SelStart:= i;
    RichEdit1.SelLength:=1;
    if RichEdit1.SelAttributes.color<> clWindowText then
    begin
      aa:= True;
      Showmessage('變過色');
      break;
    end;
  end;
~~應無所住而生其心~~
eveling
一般會員


發表:2
回覆:5
積分:1
註冊:2004-01-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-13 11:54:23 IP:61.63.xxx.xxx 未訂閱
謝謝terrychen大大,依您的方法,已經解決我的問題了! 阿里阿豆! ^ O ^ 
系統時間:2024-06-18 21:31:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!