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

FindDialog+RichEdit

尚未結案
chead
一般會員


發表:10
回覆:12
積分:4
註冊:2004-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-15 09:15:52 IP:220.130.xxx.xxx 未訂閱
想做一個可以在RichEdit內"向上搜尋"的功能,還有一個問題是希望不管是向下或是向上搜尋時,由於內容大於RichEdit的可見範圍,所以希望在搜尋時,Scrollbar可以自動移至所搜尋到的列數於可見範圍內,不知道我這樣的形容,是否會不夠明瞭,由於我找到的是BCB的解答,一直試不出來,有點苦惱,麻煩大家了,謝謝!
meta
中階會員


發表:3
回覆:60
積分:57
註冊:2004-06-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-15 18:18:56 IP:202.39.xxx.xxx 未訂閱
1.做一個可以在RichEdit內"向上搜尋"的功能 //修改自 BGman大的文章,D5下可執行 http://delphi.ktop.com.tw/topic.php?topic_id=25477    procedure TForm1.FindDialog1Find(Sender: TObject); var   FoundAt,nStartPos,nToEnd:Integer;   search:Integer; begin   if RichEdit1.SelLength > 0 then     nStartPos:=RichEdit1.SelStart十RichEdit1.SelLength   else     nStartPos:=0;   nToEnd:=Length(RichEdit1.Text) - nStartPos;   if frDown in FindDialog1.Options then     FoundAt:=RichEdit1.FindText(FindDialog1.FindText,      nStartPos ,nToEnd,[stMatchCase])   else   begin     search:= -1 ;     repeat       FoundAt:= search ;       search := RichEdit1.FindText(FindDialog1.FindText,         search十1,RichEdit1.SelStart-search-1,[stMatchCase]);     until search<0 ; end; if ( FoundAt<>-1 ) then begin RichEdit1.SetFocus; RichEdit1.SelStart:= FoundAt; RichEdit1.SelLength:=Length(FindDialog1.FindText); end else ShowMessage('找不到'十FindDialog1.FindText 十 '字串!'); end; //'十'符號怪怪..
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-15 20:17:46 IP:61.31.xxx.xxx 未訂閱
補充: {所選擇範圍起始} RichEdit.SelStart := {所選擇範圍長度} RichEdit.SelLength:= {設定所選範圍字型大小} RichEdit.SelAttributes.Size:=; {設定所選範圍字型顏色} RichEdit.SelAttributes.Color :=; {設定所選範圍字型樣式} RichEdit.SelAttributes.Style :=; {取消選擇範圍} RichEdit.SelLength :=0; 若HideSelection設為False,使用SelStart就可以指向位置。 否則使用 RichEdit1.Perform(EM_SCROLLCARET, 0, 0);也一樣。 若想要取得某行的Selstart位置,可以使用 RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX,行數, 0); RichEdit1.SetFocus;
meta
中階會員


發表:3
回覆:60
積分:57
註冊:2004-06-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-16 09:27:07 IP:202.39.xxx.xxx 未訂閱
2.在搜尋時,Scrollbar可以自動移至所搜尋到的列數於可見範圍內 //不知 blk5743大的回答是否可行?! http://delphi.ktop.com.tw/topic.php?topic_id=63031    
chead
一般會員


發表:10
回覆:12
積分:4
註冊:2004-08-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-16 11:11:36 IP:220.130.xxx.xxx 未訂閱
meta幫我解決了第一個問題 wameng則幫我解決了第二個問題 真的很感謝 不過,我不知道怎麼給分:S
系統時間:2024-05-19 11:57:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!