假设memo中有4行文字,第4行为'djldsfjldsajdsa'。
想要取得第4行中'd'的左上角的位置,如何求?
最好是给出代码!!!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i,j,k:integer;
    begin
    j:=memo1.Font.Height;
    i:=memo1.Lines.IndexOf('djldsfjldsajdsa')+1;
    k:=memo1.Top-i*j;
    showmessage(inttostr(k));
    Button1.Top:=k;
    end;你可以看到,button1的top和第四行对齐
      

  2.   

    ade兄,我不想通过这种方法求,能不能直接得到最后一行位置的x,y。
      

  3.   

    直接得到最后一行位置的x,y。
    行吗?不知道了帮你UP吧
      

  4.   

    myling(阿德) 
    真是高手,至少思路敏捷。佩服!
      

  5.   


      int(memo1.lines[memo.lines.count-2]*memo1.font.size /9*6)+memo1.top,memo.left解释一下:
    memo1.lines.count-1 memo1的总行数-2,也就是memo1中最后第二行的行号 memo1.lines[行号]也就是memo1的最后第二行
    最后第二行最底下的的位置〔也就是最后一行顶点位置〕可以用最后第二行行号×字号大小[小五号的字<号>*6  也就是行号/9*6] 再加上memo1.top就是你需要的点的上边位置
    左边位置当然与memo1的左边界对齐了  
      

  6.   

    因为我使用的是一个RxRichEdit的控件,既有文字也有图片。想求全部内容的高度
      

  7.   

    上面的有点错误,应该是:
    int((memo.lines.count-2)*memo1.font.size /9*6)+memo1.top,memo.left