B
bingxueshanren
Unregistered / Unconfirmed
GUEST, unregistred user!
//i,j是全局变量<br>procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,<br> Y: Integer);<br>var<br> WordInRE: string;<br> iCharIndex, iLineIndex, iCharOffSet : integer;<br> pt : TPoint;<br> s : string;<br>begin<br> with TRichEdit(sender) do<br> begin<br> pt := Point(X,Y);<br> iCharIndex := Perform(EM_CHARFROMPOS, 0, Integer(@Pt));<br> //获得光标所在字符的字符索引值(从开始算起直至光标所在字符)<br> if iCharIndex < 0 then<br> Exit;<br> iLineIndex := Perform(EM_EXLINEFROMCHAR,0,iCharIndex);<br> //获得光标所在字符的行索引值<br> iCharOffSet := iCharIndex - Perform(EM_LineIndex,iLineIndex,0);<br> //光标所在字符偏离其所在行的第一个字符的位置 ,也就是说光标所在字符是该行 的第几个字符<br> if Lines.Count -1 < iLineIndex then<br> Exit;<br> s := Lines[iLineIndex];<br> Inc(iCharOffSet); //将光标所在字符向后移一位<br> i := iCharOffSet;<br> while (i>0) and (s<> ' ') do<br> i := i-1; //向前查找直至找到光标所在单词的第一个字母的位置<br> Inc(iCharOffSet);<br> j := iCharOffSet;<br> while (j <= Length(s)) and (s[j] <> ' ') do<br> Inc(j); //从单词的第一个字母循环向后找直至找到最后一个字母的位置<br> WordInRE := Copy(s,i,j - i); //获得光标所在的单词<br> end;<br>end;<br>我想在下面的自定义函数中调用上面时间中的变量i,j的值,不知该如何调用?<br>procedure TForm1.SetWordProp(i, j: Integer);<br>begin<br> //i :=<br> //j :=<br> RichEdit1.SelStart := i;<br> RichEdit1.SelLength := j-i;<br> RichEdit1.SelAttributes.Color := clRed;<br> RichEdit1.SelAttributes.Style := [fsUnderline];<br><br>end;