我在用delphi开发一个PHP的开发环境。有这么一个功能,即在键盘输入点弹出一个小窗口提示或选择当前的输入,类似于的delphi开发环境的的那种提示。我用的是Richedit编辑器。但我无法取得当前输入点(光标)的坐标。不是鼠标位置,是输入焦点的像素位置。
帮帮忙。谢谢啦。

解决方案 »

  1.   

    可以用:Richedit1.SelStart 试试。
      

  2.   


    var
      p:TPoint;
    begin
      GetCaretPos(p);
      ShowMessage(IntToStr(p.X)+':'+IntToStr(p.Y));
    end;
      

  3.   

    输入点的坐标?
    用GetCaretPos,这个函数表示:把插入标记的位置坐标放在TPoint结构中
      

  4.   

    这个不对,得到的是以字符为单位的左边,而我弹出的窗口是需要像素单位的,而且好像GetCaretPos得到的是忽略滚动条的。即如果窗口滚动,还得求取被滚动掉的行数。
    我实现的功能很简单,就是我们常用的高级语言开发环境中,你打一个点,后面就弹出一个小窗口提到这个对象有哪些属性。你打一个括号,也弹出一个小窗口提示这个函数哪些产生。等等。
      

  5.   

    使用 GetCaretPos 如果是等宽字体,结合求取被滚掉的行、行距、字宽,倒可以的。