請問如何在RichEdit內,做多選的功能...... |
答題得分者是:xbx
|
b9015055
一般會員 發表:4 回覆:2 積分:1 註冊:2007-09-28 發送簡訊給我 |
我現在想在RichEdit內寫1個多選的功能
我有爬過文 查到相關的文章:http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=88892 以上文的例子:我 [ 愛 | 很愛 | 超愛 ] 你 在一開始的時候 只會在RichEdit中出現 我 愛 你 這3個字 當滑鼠點擊 愛這個字的時候 會在隔壁的ListBox中 Show出:愛、很愛、超愛 這幾個選項 然後選 很愛 之後按下確定後 RichEdit中的文字變成了=> 我 很愛 你 這樣... 我有2個問題想問....... 1.如果依我爬到的文來做 請問要怎麼使用所謂的超連結呢? 2.除了我爬到的文外 想請問是否還有別種的做法呢? 我先謝謝回答問題的人了 .......
------
Yap~~~ |
xbx
一般會員 發表:0 回覆:10 積分:12 註冊:2003-08-03 發送簡訊給我 |
用鼠标取得当前位置的隐藏属性的文字即可。
//专门为资料收集库做的,看看后面是否有<:TO字样,有就返回整个<...>字符串。 [code delphi] function TCustomRichEdit20.WordAtMouseEx(X,Y:Integer;var WordAtMouseStr:string): Integer; var iCharIndex, iLineIndex, iCharOffset, i, j: Integer; Pt: TPoint; s: widestring; FlagStr :string; begin Result := -1; Pt := Point(X, Y); // Get Character Index from word under the cursor iCharIndex := Perform(EM_CHARFROMPOS, 0, Integer(@Pt)); if iCharIndex < 0 then Exit; // Get line Index iLineIndex := Perform(EM_EXLINEFROMCHAR, 0, iCharIndex); iCharOffset := iCharIndex - Perform(EM_LINEINDEX, iLineIndex, 0); if Lines.Count - 1 < iLineIndex then Exit; // store the current line in a variable s := Lines[iLineIndex]; FlagStr :=Copy(s, iCharOffset, Length(s)); if Pos('<:TO',FlagStr)<>0 then begin // Display Text under Cursor WordAtMouseStr := FlagStr; Result:=iCharOffset; end; end; [/code]
編輯記錄
xbx 重新編輯於 2008-03-11 14:25:13, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |