여러방법이 있겠지만, 간단하게 타이머로 해 보았습니다.
<!--CodeS-->
procedure TFrmAboutHint.Timer1Timer(Sender: TObject);
begin
if Memo1.Perform(WM_VSCROLL, SB_LINEDOWN, 0) <= 0 then //한줄씩 내립니다, 결과가 0이면 이기능이 안된겁니다. 즉, 마지막줄일경우 맨 위로 가는 루틴 실행
Memo1.Perform(WM_VSCROLL, SB_TOP , 0);
end;
<!--CodeE-->
<!--CodeS-->
procedure TFrmAboutHint.Timer1Timer(Sender: TObject);
begin
if Memo1.Perform(WM_VSCROLL, SB_LINEDOWN, 0) <= 0 then //한줄씩 내립니다, 결과가 0이면 이기능이 안된겁니다. 즉, 마지막줄일경우 맨 위로 가는 루틴 실행
Memo1.Perform(WM_VSCROLL, SB_TOP , 0);
end;
<!--CodeE-->