Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Бегущая строка [D7, Win2k]


X-gen ©   (2004-12-02 14:52:00) 

Сидел я на днях и думал как же мне сделать бегущую строку.
Случайно никто не знает как её сделать? Буду очень благодарен за помощь.


grom   (2004-12-02 19:14:00) [1]

http://micsoft.narod.ru/help.html
Бегущая строка


ALS   (2004-12-02 16:49:00) [2]

Кладешь на форму Label c AutoSize = False, Caption = ''.
Таймер Active = True.

var PosCur: integer;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Timer1.Enabled := False;
 Label1.Canvas.Brush.Color := Label1.Color;
 Label1.Canvas.TextOut(PosCur, 0, 'Бегущая строка ');
 Dec(PosCur);
 if PosCur < 1 then
 begin
   PosCur := Label1.Width;
   Label2.Canvas.FillRect(Label1.ClientRect)
 end;
 Timer1.Enabled := True
end;

Текст строки должен кончаться пробелом, иначе будет оставлять полосу


ALS   (2004-12-02 16:49:00) [3]

Кладешь на форму Label c AutoSize = False, Caption = ''.
Таймер Active = True.

var PosCur: integer;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Timer1.Enabled := False;
 Label1.Canvas.Brush.Color := Label1.Color;
 Label1.Canvas.TextOut(PosCur, 0, 'Бегущая строка ');
 Dec(PosCur);
 if PosCur < 1 then
 begin
   PosCur := Label1.Width;
   Label2.Canvas.FillRect(Label1.ClientRect)
 end;
 Timer1.Enabled := True
end;

Текст строки должен кончаться пробелом, иначе будет оставлять полосу


Del   (2004-12-02 16:31:00) [4]

Думаю эффект тот же


Алхимик   (2004-12-02 16:13:00) [5]


> [3] Del ©   (02.12.04 15:27)


> [4] Змей ©   (02.12.04 16:10)

У Вас бегущий TLabel, а автор просит бегущую стоку.


Змей   (2004-12-02 16:10:00) [6]

сначала помести на форму timer;edit1 и edit2;label

ето дело в таймер
label1.left:=Label1.left+1;  //координаты леблы
edit1.text:=inttostr(Label1.left);//отображаются коорд.
procedure TForm1.Timer1Timer(Sender: TObject);
var s:string;
label l1;
begin
l1:  timer1.Enabled:=true;
 edit2.Text:=inttostr(form1.ClientWidth);
//интервал = 100
label1.left:=Label1.left+10;
edit1.text:=inttostr(Label1.left);
if  label1.Left=form1.clientwidth  then begin
timer1.Enabled:=false;
label1.left:=0 ;
goto l1;
end;
end;
примитивно правда:)
кстати в инспекторе объектов поставь у label:  width поставь кратным например 45 и
у form: тоже например 640 тогда выходить за пределы не будет и все будет катать наман а вот как без этого делать я не помню
у edit1:  label1.left:=0;


Del   (2004-12-02 15:27:00) [7]

Label.left:=0 через секунду
Label.left:=1 и т. д.
При достижении конца формы заново.


TUser   (2004-12-02 15:03:00) [8]

Удалено модератором


Алхимик   (2004-12-02 14:56:00) [9]

Бегущую куда?


Наверх

Титульная страница Поиск, карта сайта Написать письмо