Бегущий текст

Во многих популярных программах есть бегущий текст.
В этом уроке я покажу вам, как можно сделать простую реализацию бегущего текста ну например в About.

Итак, создаем новый Delphi проект. Переходим в окно кода, и после ключевого слова var дописываем:


bm:TBitmap;x,y:Integer;  

Потом опять, переходим на форму, и кидаем компонент TTimer (вкладка system). Свойство Enabled ставим в значение false, а в свойстве interval таймера ставим значение 20.
Далее, создаем обработчик событий OnCreate на форме. В котором прописываем следующий код:


x:=Form1.width/2; //текст будет выводиться посредине формы  
y:=Height+50; //чтобы текст выводился не сразу  
bm:=TBitmap.Create; //создаем объект TBitmap  
bm.Width:=width; //ширина как у формы  
bm.height:=height; //высота как у формы  
bm.PixelFormat:=pf32bit; //32 битный режим изображения  
Canvas.Font.Name:='Times New Roman'; //делаем шрифт Times New Roman  
bm.Canvas.Brush.Color:= $004F4F52; //серый цвет фона bitmap  
bm.Canvas.FillRect(bm.Canvas.ClipRect); //делаем, bitmap стал весь серый  
timer1.Enabled:=True; //включаем таймер  

Далее создаем, обработчик событий OnTimer у таймера и пишем туда следующий код:

y:=y-1;  
if y=-200 then y:=height+10;  
with bm do begin  
Canvas.Font.Color:=$000576DC; //делаем цвет оранжевым  
Canvas.TextOut(x-10,y, 'Имя программы:');  
Canvas.Font.Color:=clWhite;  
Canvas.TextOut(x,y+15, 'Автор: Имя Автора');  
Canvas.Font.Color:=$000576DC; //делаем цвет оранжевым  
Canvas.TextOut(x-10,y+30,'Тестеры:                  ');  
Canvas.Font.Color:=clWhite;  
Canvas.TextOut(x,y+45,'Имя тестера');  
Canvas.TextOut(x,y+60,'Имя тестера');  
Canvas.TextOut(x,y+75,'Имя тестера');  
Canvas.Font.Color:=$000576DC; //делаем цвет оранжевым  
Canvas.TextOut(x-10,y+90,'Спасибо:            ');  
Canvas.Font.Color:=clWhite;  
Canvas.TextOut(x,y+105,'Имя');  
Canvas.TextOut(x,y+120,'Имя');  
Canvas.TextOut(x,y+135,'Имя');  
Canvas.TextOut(x,y+150,'Имя');  
Canvas.Font.Color:=$000576DC; //делаем цвет оранжевым  
Canvas.TextOut(x-10,y+165,'Автор.Год');  
Canvas.TextOut(x-10,y+180,'          ');  
end;  
Canvas.Draw(0,0,bm); //вырисовываем на форме объект Bitmap  

Вот и все, осталось только объяснить несколько технических моментов в этом примере.
Так как это самый простой пример, у него могут возникать ошибки. Например, хвост какой ни будь буквы растягивается. Это можно устранить пробелами. Следующее:


if y=-200 then y:=height+10;  

это означает, что если текст вышел вверх на высоту -200 пикселей, то значение y будет высота формы+10, чтобы текст опять ехал вверх.
Теги:
текст
Добавлено: 01 Августа 2018 07:12:33 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...