// loop rolling up IF Memo1.Perform (EM_SCROLL, SB_LINEDOWN, 0 ) = 0 the then the begin Memo1.Perform (a WM_VSCROLL, SB_TOP, 0 ); End the else the begin the SendMessage (Memo1.Handle, a WM_VSCROLL, SB_LINEDOWN, 0 ); End ; // execute in the end SendMessage (Memo1.Handle, EM_SCROLL, SB_BOTTOM, 0); // step by step down SendMessage (Memo1.Handle, WM_VSCROLL, SB_LINEDOWN, 0); // go down SendMessage (Memo1.Handle, EM_SCROLL, SB_PAGEDOWN, 0); IF (EM_SCROLL, SB_LINEDOWN, Memo1.Perform 0 ) = 0 the then // roll under button2.Enable := False; if Memo1.Perform(EM_SCROLL, SB_LINEUP, 0)=0 then//上滚 button1.Enable := False;