Delphi уроки - бегущий текст

Опубиковано: 15.11.2009 г., автор: , просмотров: 28016

Delphi уроки - бегущий текст

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

image_text_delphi

Итак, создаем новый 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, чтобы текст опять ехал вверх.

Скачать исходник

P.S. Хотите вперед всех остальных посетителей сайта получать свежие Видео уроки, Аудио подкасты, статьи по Delphi.
Участвовать в конкурсах и постепенно вливаться в нашу команду ?!
Тогда прямо сейчас подписывайтесь на бесплатную мультимедийную рассылку сайта delphiexpert.ru
Нас уже больше чем 3500 человек ! Подписаться



Похожие материалы

Последние из рубрики

That's the best answ 07 Oct 2014 в 01:24 #
That's the best answer by far! Thanks for coguribttinn.
Триллионер 30 Oct 2013 в 01:07 #
у меня тоже не работает!
a098e87d 14 Jun 2012 в 00:00 #
Ничего не работает.

Код непонятный, разобраться не получается. Автор, код надо иногда форматировать, но ты же ниасилил...

P.S. Автор - научись писать грамотно.
Артём 16 Jun 2011 в 00:00 #
У меня на форме Image стоит как сделать чтоб был виден только текст?
alexandr 27 May 2011 в 00:00 #
У меня даже исходник не заработал.автор ты какую версиюделфи юзаешь(у меня 7).

ОтменитьДобавить комментарий