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

請問如何在RichEdit內,做多選的功能......

答題得分者是:xbx
b9015055
一般會員


發表:4
回覆:2
積分:1
註冊:2007-09-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-18 23:45:46 IP:61.230.xxx.xxx 訂閱
我現在想在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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-11 14:24:09 IP:218.13.xxx.xxx 訂閱
用鼠标取得当前位置的隐藏属性的文字即可。
//专门为资料收集库做的,看看后面是否有<: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, 註解 無‧
系統時間:2024-05-03 6:08:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!