各位大虾好!!!小弟想问一下输入焦点的光标位置可以获取吗,就是TEdit的内的的输入光标,当输入一个字符后光标就向后移动一下,不知道这个光标的位置可否获得,小弟急需这个动作,若有知道的大虾请回复,跪谢了!!!

解决方案 »

  1.   

    如果没有选择文本(字符),SelStart就指出了光标所处的位置。edit1.selstart;
    返回位置上面应该就可以了,我不清楚楼主的具体意思
    不过你可以试试
      

  2.   

    //SelStart得到字符位置
    //GetCaretPos得到光标的象素位置
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
      vPoint: TPoint;
    begin
      GetCaretPos(vPoint);
      Caption := Format('%d,%d', [vPoint.X, vPoint.Y]);  if not (ActiveControl is TEdit) then Exit;
      Label1.Caption := '^';
      Label1.Left := ActiveControl.Left + vPoint.X;
      Label1.Top := ActiveControl.Top + ActiveControl.Height + vPoint.Y;
    end;
      

  3.   

    http://www.2ccc.com/article.asp?articleid=1794
      

  4.   

    非常感谢楼上“Kshape([伟大的大伟!])”和“liumazi(刘麻子)”两位大虾的回复,小弟巳测试得到了正解,关键原来在GetCaretPos上。可能小弟没有说清楚,让大虾们误解了,小弟主要是想实现当在Edit内输入字符时Edit自动调动整宽度,宽度为输入的字符串长度+15,小弟要的动作用GetCaretPos可以实现,真的是太感谢liumazi大虾了!!!同时也感谢Kshape大虾,非常感谢您的热心帮助。顺便想再说一下,小弟的TListViewEx子项可编缉动作也差不多做成,代码做得很烂,若大家有时间还请多多PP哈~~~近期在找地方上传ing!!!