Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать бегущую строку? Как создать бегущую строку? 
V
    Опции темы
Ganibal
  Дата 16.3.2006, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Помогите создать бегущую строку! Строга должна двигаться в низу экрана на прозрачном фоне. Заранее спасибо!
PM MAIL   Вверх
cardinal
Дата 16.3.2006, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Есть вот такой примерчик
Код

' Для того, чтобы изобразить на форме произвольный текст, который с определенной скоростью
' прокручивается снизу вверх нам понадобяться следующие контролы:
'
' Timer1, свойство интервал установите равным 5.
' Picture1, на который наложите Picture2, на который в свою очередь наложите Label1.
' У вас должно в итоге получиться Label1 внутри Picture2, который находится внутри Picture1.
' Если кликнуть мышкой по вершине этого бутерброда, то можно остановить движение текста, или
' вознобновить движение. Приготовления закончены, теперь сам код:

Private Sub Form_Load()
Picture1.ScaleMode = 3
Picture1.BorderStyle = 0
Picture1.Width = Me.ScaleWidth
Picture1.Height = Me.ScaleHeight
Picture1.Left = 0
Picture1.Top = 0
Picture2.BorderStyle = 0
Picture2.Top = Picture1.ScaleHeight
Label1.WordWrap = True
Label1.Left = 0
Label1.Width = Picture2.ScaleWidth
Label1.FontSize = 12
' Здесь можете ввести ваш текст
Label1.Caption = "Спасибо программерам с HiProg.com за этот пример!"
Label1.AutoSize = True
Label1.Top = 0
Picture2.Height = Label1.Height \ Screen.TwipsPerPixelY + 10
Picture2.Left = (Picture1.Width \ Screen.TwipsPerPixelX - Picture2.Width) / 2
End Sub

Private Sub Label1_Click()
Timer1.Enabled = Not Timer1.Enabled
End Sub

Private Sub Picture1_Click()
Timer1.Enabled = Not Timer1.Enabled
End Sub

Private Sub Timer1_Timer()
Picture2.Top = Picture2.Top - 1
If Picture2.Top <= -Picture2.Height Then Picture2.Top = Picture1.ScaleHeight
End Sub

при помощи какого ты можешь сделать то, что тебе надо.

Но возможно есть и решения по лучше. Я просто даже не смотрел, что написано выше... smile (просто пример у меня завалялся)


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Тутанхамец
Дата 16.3.2006, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Другой вариант (немножко сермяжный, но имхо попроще). Строка бежит справа налево.

Код

Option Explicit
Dim cap As String
Dim i As Long
Dim LeadingSpace As String


Private Sub Form_Load()
LeadingSpace = String(100, " ") 'определяет начальную точку, откуда текст побежит
'чем больше значение, тем правее начальная точка
cap = LeadingSpace + "Это мой текст."
label1.BackColor = 0
label1.AutoSize = True
Timer1.Interval = 100 'чем меньше это значение, тем быстрее бежит текст
End Sub

Private Sub Timer1_Timer()

i = i + 1
label1.Caption = Mid$(cap, i, Len(cap))
If i = Len(cap) Then i = 0
End Sub


cap можно оформить как константу, а i как static в Timer1_Timer.

Это сообщение отредактировал(а) Тутанхамец - 16.3.2006, 07:53

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  gannibalu.rar 1,32 Kb
PM MAIL   Вверх
Exception
Дата 16.3.2006, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Внизу формы или внизу экрана? Это разные вещи. Внизу экрана - это разве только регионами, морока еще та.
PM   Вверх
Тутанхамец
Дата 16.3.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Нда, это я как-то не подумал... Если внизу именно ЭКРАНА, то можно создать форму с бегущей строкой и сделать эту форму прозрачной... Так сходу не смогу накидать, как именно. В WinXP для этого специальные функции API, кажется, есть.
PM MAIL   Вверх
Ganibal
  Дата 16.3.2006, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Спасибо за примеры. Извените что забыл уточнить что строка должна двигаться внизу экрана а не формы. Это я хочу работать на местном телевидении в своем городе, а они посмотрели что молодой и дали такую экзаменационную задачу "Бегущую строку" написать для новостей. Если кто сможет помочь буду рад.
PM MAIL   Вверх
cardinal
Дата 16.3.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



А почему речь о VB?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ganibal
Дата 16.3.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



На VB по тому что больше я не чего толком и не знаю (вдруг предеться модернизировать) а предыдущая прога была написана на vb4.
PM MAIL   Вверх
Exception
Дата 17.3.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Встречный вопрос: полупрозрачное окно подойдет? То есть чтобы окно было, но через него все просвечивало. Это гораздо легче, чем маяться с регионами. Просто, например, внизу экрана будет полупрозрачная синяя полоска (форма с BorderStyle = None), по которой и будут двигаться буквы.
PM   Вверх
Ganibal
Дата 18.3.2006, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Да полупрозрачное окно подойдет! И еще хотел спросить как сделать чтоб строка запускалась в определенное время, значения я забью например 21:00?
PM MAIL   Вверх
Ganibal
  Дата 19.3.2006, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Выложи пожалуйсто пример с полупрозрачным окном! Заранее больщое спасибо!
PM MAIL   Вверх
Тутанхамец
Дата 19.3.2006, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Касательно времени.
Прога должна быть запущена постоянно, и каждые, допустим, пять секунд (можешь чаще, можешь реже) срабатывает таймер, получает текущее время (функция Time() и ей подобные). Если время равно 21:00, то показываем форму внизу экрана.
Добавлено @ 08:10
P.S. А можно использовать всякие проги-ежедневники, которые могут запускать другие проги в определенное время.
PM MAIL   Вверх
cardinal
Дата 19.3.2006, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Ganibal @ 18.3.2006, 22:12 Найти цитируемый пост)
Выложи пожалуйсто пример с полупрозрачным окном! Заранее больщое спасибо!

http://www.activevb.de/tipps/vb6tipps/tipp0462.html
Должно работать в 2000 и XP.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ganibal
  Дата 21.3.2006, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



СПАСИБО потцаны, Вы мне сильно помогли. Завтра буду оформляться на работу!!!
PM MAIL   Вверх
cardinal
Дата 22.3.2006, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Молодец! smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.