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

請問要如何使用Memo做出查詢結果的內容中,反白查詢的字?

尚未結案
hidylan
一般會員


發表:14
回覆:17
積分:6
註冊:2004-12-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-15 20:22:07 IP:220.134.xxx.xxx 未訂閱
請問我用SQL語法寫Like的查詢,結查詢的結果用Memo顯示出來,但我希望能做出在Memo的一堆文字中,能反白我輸入的查詢關鍵字,就像一般的搜尋網站,能反白查詢結果的關鍵字,請知道的前輩能教教我要如何寫這程式,謝謝。
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-15 22:28:00 IP:218.163.xxx.xxx 未訂閱
考慮用 richedit
Vicen
高階會員


發表:13
回覆:145
積分:151
註冊:2005-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-15 23:54:47 IP:221.226.xxx.xxx 未訂閱
Memo用SELSTART和SELLENGTH可以使START到长度LENGTH的文字反白,但不能实现多个反白,用RICHEDIT,将查询位置的底色和字体色改成反白就可以了。
hidylan
一般會員


發表:14
回覆:17
積分:6
註冊:2004-12-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-16 00:37:17 IP:218.175.xxx.xxx 未訂閱
但我沒有用過RichEdit這個元件,查之前的文章,好像都沒有我這樣的例子可以參考, 請問那裡可以找到類似的例子可以參考,謝謝。
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-16 23:03:23 IP:210.68.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
var
  i, iCount, iLength, iTag: Integer;
  sFind, sTmp: String;
begin
  sFind:= Edit1.Text;
  iCount:= 0;      for i:=0 to RichEdit1.Lines.Count -1 do
  begin
    iLength:= 0;
    sTmp:= RichEdit1.Lines.Strings[i];
    while Pos(sFind, sTmp) > 0 do
    begin
      iTag:= Pos(sFind, sTmp);
      RichEdit1.SelStart:= iTag-1 iCount iLength;
      RichEdit1.SelLength:= Length(sFind);
      RichEdit1.SelAttributes.Color:= clRed;          iLength:= iTag   Length(sFind)  iLength -1;          sTmp:= Copy(sTmp, iTag Length(sFind), MAXINT);
    end;
    iCount:= iCount   Length(RichEdit1.Lines.Strings[i])   2;
  end;    end;
Freddy
一般會員


發表:0
回覆:5
積分:1
註冊:2003-05-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-16 23:13:55 IP:210.68.xxx.xxx 未訂閱
以下請參考    
procedure TForm1.Button1Click(Sender: TObject);
begin
  DrawColor(RichEdit1,edit1.Text ,0);
end;    procedure TForm1.DrawColor(RichEdit :TRichEdit ;sSel :string ; iForm :integer) ;
var iGet :integer;
begin
  iGet := RichEdit.FindText(sSel,iForm,maxint,[stMatchCase]);
  if iGet >0 then
  begin
    RichEdit.SelStart := iGet ;
    RichEdit.SelLength := Length(sSel);
    RichEdit.SelAttributes.Color:= clRed;
    DrawColor(RichEdit,sSel ,iGet 1);
  end;
end;    
~~學習中!
------
~~學習中!
hidylan
一般會員


發表:14
回覆:17
積分:6
註冊:2004-12-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-03-17 20:35:49 IP:218.175.xxx.xxx 未訂閱
感謝二位提供的程式碼,我也都試過,也都可以得到我想要結果,讓我學習不少,讓我就把分數給Freddy,因為Freddy分數比較少,我們也要多鼓勵學習中的人,有能力可以和別人交流學習的經驗,真希望我也有足夠的能力幫別人解決問題,就請jimmy_wei不要介意,謝謝了。
系統時間:2024-06-29 23:52:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!