W waiwai Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #3 用这个特性就可以知道了:richedit.caretpos.(x或y)
C chenbm Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #4 我是说任意指定一个pos直,而知道它所在的行,不一定是光标所在的字符
O o*o Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #5 richedit.caretpos.(x或y)是象素值,当然不行。 这样: 所在行 :=SendMessage(RichEdit1.Handle,$0436,0,pos);
P Pipi. Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #6 从开头开始找: c:=0; for i:=0 to RichEdit1.Lines.Count-1 do begin c:=c+Length(RichEdit1.Lines)+2;//回车换行符 2 个字符 if c<pos then 就是这一行了; end;
从开头开始找: c:=0; for i:=0 to RichEdit1.Lines.Count-1 do begin c:=c+Length(RichEdit1.Lines)+2;//回车换行符 2 个字符 if c<pos then 就是这一行了; end;
R receyes Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #8 o*o用SendMessage发送的是什么消息?$0436应该属于自定义消息的范围了吧?
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-17 #9 取得行数? 这样X为列数,Y行数) Y:=SendMessage(richedit1.Handle, EM_EXLINEFROMCHAR, 0, richedit1.SelStart); X := richedit1.SelStart - SendMessage(richedit1.Handle, EM_LINEINDEX, CharPos.Y, 0); beta(mophy@188.net)
取得行数? 这样X为列数,Y行数) Y:=SendMessage(richedit1.Handle, EM_EXLINEFROMCHAR, 0, richedit1.SelStart); X := richedit1.SelStart - SendMessage(richedit1.Handle, EM_LINEINDEX, CharPos.Y, 0); beta(mophy@188.net)
R receyes Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-18 #10 beta的代码是取得当前光标的行列号,chenbm好像是要查找某个字符所在的行数。
B banelon Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-18 #11 beta的方法是正确的, 获取光标在控件中的行号,思路完全正确。 需要注意的是richedit中的最上面一行值为0.
O o*o Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-18 #12 各位大哥大姐,为何不亲自试一下我的SendMessage,这是正解。
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-19 #13 补充一下, inc(X);inc(Y); 过后的X,Y才是真正的列号和行号, 因为第一列和第一行都是0. 正如banelon所说的.