没用过editor,不过你可以试着双击这个页面,你回看到一个现象,应该是你要的功能吧?

解决方案 »

  1.   

    加个timer控件,发送消息,设置inteval可调节滚动快慢。procedure TForm1.Timer1Timer(Sender: TObject);
    begin
        SendMessage(Memo1.Handle,  { HWND of the Memo Control }
                    WM_VSCROLL,    { Windows Message }
                    SB_PAGEDOWN,   { Scroll Command }
                    0)             
    end; 
      

  2.   

    我以为你是做网页呢!在DELPHI中就很好实现了!
      

  3.   

    真的???好呀!!!帮我在dome中的Richedit例程实现一下好吗????
      

  4.   

    先截获某个键,然后发消息
    SendMessage(Memo1.Handle, WM_VSCROLL, SB_DOWN.., 0);
    其中的第三个参数我忘了,可以控制上下左右滚动,你查一下吧,前缀
    都是SB_之类的,如果要自己控制滚动速度,我想最好自己家一个ScrollBar就好控制了,不然很麻烦
      

  5.   

    注:同上面“爱国者”的
    加个timer控件,发送消息,设置inteval可调节滚动快慢。procedure TForm1.Timer1Timer(Sender: TObject);
    begin
        SendMessage(Memo1.Handle,  { HWND of the Memo Control }
                    WM_VSCROLL,    { Windows Message }
                    SB_PAGEDOWN,   { Scroll Command }
                    0)             
    end; 然后你再用一个Button
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Timer1.Enabled := True;
    end;如果要按某一键停止的话,再在按那个键的事件中写Timer1.Enabled:=False
    应该是可以了。
      

  6.   

    每次滚动一行,最好象mouse的中间的滚轮一样!!!可以吗??
      

  7.   

    完整的实现:var
      Form1: TForm1;
      iScroolSpeed : integer=1000; //滚动速度
      bIfScrool :boolean=False;    //是否滚动?implementation{$R *.DFM}procedure TForm1.Timer1Timer(Sender: TObject);
    begin
         SendMessage(Memo1.Handle,  { HWND of the Memo Control }
                     WM_VSCROLL,    { Windows Message }
                     SB_LINEDOWN,   { Scroll Command 单行滚动}
                     0);end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin  if Key = vk_F1 then bIfScrool := Not bIfScrool; //按F1滚动开始或停止  if bIfScrool then
        case Key of
          vk_F2 : iScroolSpeed := iScroolSpeed - 50;  //F2加速
          vk_F3: iScroolSpeed := iScroolSpeed + 50;   //F3减速
        end;  if iScroolSpeed < 0 then iScroolSpeed := 1;
      if iScroolSpeed > 5000 then iScroolSpeed := 5000;  Timer1.Interval := iScroolSpeed;
      Timer1.Enabled := bIfScrool;
    end;end.
      

  8.   

    如果是在RichEdit中,把上面那个改成下面这个:
    再把Memo1KeyDown的程序移到RichEdit1KeyDown中就ok了SendMessage(RichEdit1.Handle,  { HWND of the Memo Control }
                     WM_VSCROLL,    { Windows Message }
                     SB_LINEDOWN,   { Scroll Command }
                     0);
      

  9.   

    不是:
    SendMessage(Memo1.Handle,  { HWND of the Memo Control }
                    WM_VSCROLL,    { Windows Message }
                    SB_PAGEDOWN,   { Scroll Command }
                    0)             
    应该是:
    SendMessage(Memo1.Handle,  { HWND of the Memo Control }
                     WM_VSCROLL,    { Windows Message }
                     SB_LINEDOWN,   { Scroll Command 单行滚动}
                     0);是SB_LINEDOWN 不是 SB_PAGEDOWN  就好了!