![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бегущая строка [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]Бегущую куда?