由于我做的收费软件是专用键盘,不能用鼠标,我用TRichEdit控件用于显示操作信息,但记录滚动时,当行数超出RichEdit的显示范围之后,不会滚动到当前添加的那行。郁闷。此时如果用鼠标将光标移到最后一行,或是拉滚动条到最下,则就会自动滚动了。郁闷。
如果改用Tmemo控件,则每次添加就会自动滚动了。但此控件不能改变没行颜色。也不能满足我的要求。
我的测试按钮中的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Y := Form1.RichEdit1.Lines.Count; 
  //X := 4;//Length(RichEdit1.Lines[Y]);
  Form1.RichEdit1.CaretPos := Point(0, Y);
  Form1.RichEdit1.SelLength := Length(Edit1.Text);
  Form1.RichEdit1.SelAttributes.Color := clRed;
  Form1.RichEdit1.Lines.Add(Edit1.Text);
  //Form1.RichEdit1.SetFocus;
end;
救命呀!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    我刚写了一个,可以procedure TForm1.Button1Click(Sender: TObject);
    var
      Y,aa: integer;
      tagS: tagScrollInfo;
    begin
      Y := Form1.RichEdit1.Lines.Count;
      Form1.RichEdit1.SelLength := Length(Edit1.Text);
      Form1.RichEdit1.SelAttributes.Color := clRed;
      Form1.RichEdit1.Lines.Add(Edit1.Text);
      GetScrollInfo(Form1.RichEdit1.Handle,SB_VERT,tagS);
      aa := MakeLong(SB_BOTTOM,0);
      SendMessage(Form1.RichEdit1.Handle, WM_VSCROLL, aa,tagS.fMask)
    end;
      

  2.   

    to:  huojiehai(海天子) 高手就是高手,果然厉害。
      

  3.   

    没你说的利害,以后有问题到我主页留言板留言。
    http://haitian.myrice.com/