Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.01.2009, 13:04
DKV DKV вне форума
Новичок
 
Регистрация: 12.01.2009
Сообщения: 50
Репутация: 10
По умолчанию Бегущая строка

Ребята, как в Delphi 7 сделать бегущую строку на форме (label), чтобы она двигалась слева направо и обратно заранее спасибо
Ответить с цитированием
  #2  
Старый 26.01.2009, 13:23
Studend Studend вне форума
Прохожий
 
Регистрация: 16.01.2009
Сообщения: 10
Репутация: 10
По умолчанию

кинь на форму таймер в таймере напиши
Код:
Application.ProcessMessages;
label1.left:=label1.Left+1;
в настройках таймера поставь свойство interval равное 10 цикл того что бы двигалась туда сюда поди сам сделаешь!?

Последний раз редактировалось Studend, 26.01.2009 в 13:28.
Ответить с цитированием
  #3  
Старый 26.01.2009, 13:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Очень просто - с помощью таймера и глобальной переменной (можно переменной класса) - шаг изменения координат.
В таймере изменяешь координаты метки, а при дохождении до границы формы - знак глобальной переменной.
Ответить с цитированием
  #4  
Старый 26.01.2009, 14:27
DKV DKV вне форума
Новичок
 
Регистрация: 12.01.2009
Сообщения: 50
Репутация: 10
По умолчанию

это я понял а как чтобы она дошла до конца формы и побежала снова с заданного места то есть слева?
Ответить с цитированием
  #5  
Старый 26.01.2009, 14:37
Аватар для glaZZ
glaZZ glaZZ вне форума
Прохожий
 
Регистрация: 18.11.2008
Сообщения: 26
Репутация: 10
По умолчанию

Чтобы проверить, достигла ли строка края формы, можно просто сравнивать положение лейбла (Left) плюс его ширина (Width) с шириной формы.
Ответить с цитированием
  #6  
Старый 26.01.2009, 15:08
DKV DKV вне форума
Новичок
 
Регистрация: 12.01.2009
Сообщения: 50
Репутация: 10
По умолчанию

А примерчик можно буду весьма благодарен
Ответить с цитированием
  #7  
Старый 28.01.2009, 22:21
GraffyM GraffyM вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 46
Репутация: 10
По умолчанию

Вот чтото выйшло у меня =) Я сам начинающий, мне 14 и я недавно начал учить делфи.
Кидаеш таймер и Label1.
Потом для таймера прописываеш:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.left:=label1.Left+1;
if Label1.Left > Form1.width then Label1.Left := Label1.Left-(Form1.width+Label1.Width);
end;
Я сделал вроде вышло. Только таймеру поставь интервал 1 =) ну думаю дальше розберёшся =)
Вот тебе и наоборот как ты просил!
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.left:=label1.Left-1;
if Label1.Left = -Label1.Width then Label1.Left := Form1.width+Label1.Width;
end;

Последний раз редактировалось GraffyM, 30.01.2009 в 17:40.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025