есть достаточно большой текст, надо сделать, чтобы шел автоматический скролл вниз до конца, и чтобы так шло по кругу, т.е. если текст закончился, то снова идет скролл с самого начала.
типа как в qip'e в разделе About Qip
подскажите, пожалуйста, как такое реализовать
автоматически прокручивающийся текст
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
А где текст должен прокручиваться?
где угодно.. например в tmemo
ну это вообще не играет никакой роли, главное - чтобы работало)
ну это вообще не играет никакой роли, главное - чтобы работало)
Код: Выделить всё
var
ScrollMessage: TWMVScroll;
begin
ScrollMessage.Msg := WM_VScroll;
for i := Memo1.Lines.Count DownTo 0 do
begin
ScrollMessage.ScrollCode := sb_LineUp;
ScrollMessage.Pos := 0;
Memo1.Dispatch(ScrollMessage);
end;
end;
Я не телепат покажи код, и учти этот пример прокручивает вверх ( sb_LineUp; )
Можно взять две числовые переменные: startrow и rowscount. Первая - номер первой отображаемой строки, а вторая - количество одновременно отображаемых строк
Код: Выделить всё
repeat
for i:=0 to rowscount-1 do
{какая-то процедура вывода строки, в зависимости от того, на что выводится, например, Memo1.Lines.Add или Form1.Canvas.Textout, ну допустим} Memo1.Lines.Add(MyText.Strings[(startrow+i) mod MyText.Strings.Count];
sleep(1000);//или другая процедура задержки, или повесить это все на OnTimer
startrow:=(startrow+1) mod MyText.Strings.Count;
//Или (прокрутка в другую сторону)
startrow:=(startrow-1+MyText.Strings.Count) mod MyText.Strings.Count;
{Потом очищаем пространство для написания (канвас формы, мемо или еще что-нибудь, допустим}
Memo1.Lines.Clear;
until {пока не надоест, а если никогда не надоест, то } false;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.