另外,如何使memo控件有新内容后自动滚动?

解决方案 »

  1.   

    memo不行,要用RichEdit。另外memo添加内容本来就会自动滚动啊。
      

  2.   

    memo不能实现不同颜色显示的功能,要用RichEdit。
    在memo的wordwrap属性就已经有自动滚动的功能
      

  3.   

    第一个用richedit才行第二个Memo的自动滚动 
     --------------------------------------------------------------------------------
     procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
      if Key = VK_F8 then
        SendMessage(Memo1.Handle, { HWND of the Memo Control }
                    WM_VSCROLL, { Windows Message }
                    SB_PAGEDOWN, { Scroll Command }  
                    0) { Not Used }
      else if Key = VK_F7 then
        SendMessage(Memo1.Handle, { HWND of the Memo Control }
                    WM_VSCROLL, { Windows Message }
                    SB_PAGEUP, { Scroll Command }
                    0); { Not Used }
    end; 
    /****超级猛料****/
      

  4.   

    wordwrap不是换行么?我去试试....................
      

  5.   

    Memo不能让不同行显示不同颜色,请用RichEdit
    新内容自动向后滚动,用SendMessage(Memo1.Handle,EM_SCROLL,SB_LINEDOWN,0); 
      

  6.   

    to bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮) :
    奇怪,行数增加到一定数目就不再自动滚动了。
    另外:RichEdit能自动滚动吗?
      

  7.   

    决定换成RichEdit。
    可怎么让不同行显示不同颜色?
      

  8.   

    var i, n, p: Integer;
    begin
      n := 2;  // 第二行
      p := 0;
      for i := 1 to n-1 do
        if i > RichEdit1.Lines.Count then
          Exit
        else
          p := p + Length(RichEdit1.Lines[i-1])+2;
      RichEdit1.SelStart := p;
      RichEdit1.SelLength := Length(RichEdit1.Lines[n-1]);
      RichEdit1.SelAttributes.Color := clRed;  // 改为红色
    end;