Если вы использовали «Kingsoft PowerWord» или «Orient Express», вас наверняка заинтересуют прокручивающиеся субтитры в их окне «О программе». Фактически, эту функцию можно легко реализовать с помощью элемента управления «Таймер» в Delphi.
1. Дизайнерские идеи
Сначала разместите на форме элемент управления «Панель» и поместите в него текст, который необходимо отобразить. Затем с помощью элемента управления «Таймер» положение элемента управления «Панель» можно непрерывно изменять в пределах определенного интервала для достижения эффекта прокрутки. субтитры.
2. Способ реализации
1. Создайте новую форму и задайте ее свойства следующим образом:
Имя: frmAbout1
Автопрокрутка: ложь
2. Поместите в форму элемент управления Panel (его имя по умолчанию — Panel1) и задайте его свойства следующим образом:
BevelOuter:bvNone
Надпись: (установлено пусто)
Отрегулируйте высоту и ширину Panel1, чтобы она представляла собой вертикальную полосу. Высота зависит от отображаемого содержимого (она может быть больше высоты формы).
3. Поместите элемент управления Label на Panel1 для отображения текста. Конечно, вы также можете разместить на нем элемент управления Image для отображения изображений, но размер изображения не должен быть слишком большим, иначе это повлияет на эффект отображения.
4. Поместите в форму элемент управления Timer (его имя по умолчанию — Timer1), установите для его свойства Interval значение 50 и введите следующий код в его событие OnTimer:
если Panel1.top>-Panel1.height, то
Panel1.top:=Panel1.top-1
еще
Panel1.top:=frmAbout1.height-35;
{Определите, переместилась ли Panel1 в верхнюю часть формы. Если нет, переместите ее на один пиксель вверх. Если да, переместите Panel1 в нижнюю часть формы и отобразите субтитры в цикле.}
5. Поместите элемент управления «Кнопка» в форму, задайте для его свойства Caption значение «ОК» и введите следующий код в событие OnClick:
close;{Закрыть форму}
3. Улучшите анализ
Выше приведен простой процесс реализации прокрутки субтитров, но есть еще одна область, которая требует дальнейшего улучшения: если форма использует изображение в качестве фона, элемент управления Panel заблокирует часть фонового рисунка. Фактически, чтобы решить эту проблему, мы можем вообще не использовать элемент управления Panel, а напрямую разместить элемент управления Label на форме, установить для свойства Transparent элемента управления Label значение True, а затем напрямую управлять этими элементами управления Label через таймер. контроль движения. Из-за ограниченности места автор не будет здесь подробно описывать ее.