下述Source是自动滚动到选中的第100行,是正确的!procedure TForm1.RichEdit_MoveTo(RichEdit: TRichEdit; LineNumber, CharNumber: Word);
begin
  RichEdit.SelStart := RichEdit.Perform(EM_LINEINDEX, LineNumber, 0) + CharNumber;
  RichEdit.SelLength := CharNumber;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit_MoveTo(RichEdit1, 100, 5);
  RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
  RichEdit1.SetFocus;
end;=========================================================================可是,当Unit中加上【uses RichEdit】上述”滚动功能”就失效了!
该如何设定?哪地方有冲突呀? Help me!(因我要用到RichEdit中的函数) 

解决方案 »

  1.   

    RichEdit和Message单元同时定义了EM_SCROLLCARET。
    改成
    RichEdit1.Perform(Messages.EM_SCROLLCARET, 0, 0);或者将Message的引用放在RichEdit之后
      

  2.   

    需要uses RichEdit吗? 你这uses RichEdit是什么意思?
    用到RichEdit 应该是uses ComCtrls;而且你也不需要手动加,你将RichEdit拖到窗体上,它自己会加上的,
      

  3.   

    RichEdit和Message单元同时定义了EM_SCROLLCARET。
    改成
    RichEdit1.Perform(Messages.EM_SCROLLCARET, 0, 0);
    ============================================================原来是这样呀! 太谢谢你了!