procedure Tmain.ci_b_text_DBMemoClick(Sender: TObject);
var iLine,iRow:Integer;
begin
  iLine:=ci_b_text_DBMemo.Perform(EM_LINEFROMCHAR,$FFFF,0);
  iRow:=SendMessage(ci_b_text_DBMemo.Handle,EM_LINEINDEX,iLine,0);
  iRow:=Floor((ci_b_text_DBMemo.SelStart-iRow+1)/2)+1;
  NonceRowLine_Edit.Text:='当前光标在:'+IntToStr(iLine-1)+'行,'+InttoStr(iRow)+'字';
end;Delphi编辑窗口都可以正常取得光标的位置呀:(
哪位大虾帮帮偶?谢谢先~~~~~~~~~~;-P

解决方案 »

  1.   

    情况是,在win2000里,“字”前面是好大一个负数,“行”也没随我点击的
    位置发生改变,请教,谢谢~~~~~~~~路过的帮忙up一下吧~~~~^_*
      

  2.   

    把 
     iLine:=ci_b_text_DBMemo.Perform(EM_LINEFROMCHAR,$FFFF,0);
    改成
     iLine:=ci_b_text_DBMemo.Perform(EM_LINEFROMCHAR,-1,0);注意到Perform的定义是这样的:
    function Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;
    就是说Wparam的类型也是32位的........