在我看来,这ScrollBy
并不是为了做你想做的事。更重要的是,我认为这也没有TMemo
必要。
我可能会使用标签来执行此操作并将其移动到计时器事件中。像这样:
procedure TScrollingTextForm.FormCreate(Sender: TObject);
begin
Label1.Caption :=
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do '+
'eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad '+
'minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip '+
'ex ea commodo consequat. Duis aute irure dolor in reprehenderit in '+
'voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur '+
'sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt '+
'mollit anim id est laborum.';
Label1.Top := ClientHeight;
end;
procedure TScrollingTextForm.Timer1Timer(Sender: TObject);
begin
Label1.Top := Label1.Top - 1;
end;
我发现我需要使表单双缓冲(DoubleBuffered := True
)以避免滚动时闪烁。