Ефект анімації “біжучий рядок”, MS Office, Програмні керівництва, статті

У цій статті розглянемо приклад реалізації ефекту анімації «Біжучий рядок». Застосовувати його можна, наприклад, як своєрідну «напоминалку», спонукають користувача зареєструвати програму, або просто виводити назву і версію програми (для ефекту), або, нарешті, як анімовану стрічку новин програми. Звичайно, тут потрібно знати міру, щоб даремно не дратувати користувача такий анімованої рекламою, інакше може вийти зворотний результат.


Ідея взята у Андрія Мітіна. Для початку визначимося, що ж ми будемо виводити в рядку анімації. Як варіант – назва і версія програми і нагадування про необхідність реєстрації. Рядки краще оголосити як глобальні константи і змінні в загальному модулі. В цьому випадку, якщо Ви вирішите застосувати ефект біжучого рядка в декількох формах, то для зміни тексту рядка достатньо буде змінити значення констант.


lab.ForeColor = 16711680 ‘синій колір


Для реалізації ефекту анімації напишемо функцію з двома параметрами


Public Function StrAnime(Str As String, lbStr As Label)


Str – рядок, яку виводимо
lbStr – елемент (Label) на формі, в якому виводиться рядок анімації


Public Function StrAnime(Str As String, lbStr As Label)
On Error GoTo Err_
Const iTrim As Long = 100 “максимальна ширина рядка (число знаків, включаючи пробіли)
Dim sIntStr As String
Dim i As Long, j As Long
bStr.TextAlign = 1 “вирівнюємо рядок
     sIntStr = Str
Do While Len (sIntStr)           sIntStr = ” ” & sIntStr
     Loop
     For i = Len(sIntStr) To 1 Step -1
lbStr.Caption = Mid (sIntStr, i) “тут власне і відбувається анімація -” висування “рядки – показуємо рядок, починаючи з останнього символу
DoEvents “передаємо управління системі
          j = 1
Do While j <1500000 "а тут просто теліпали лічильник - варіант тимчасової затримки процесу
               j = j + 1
          Loop
     Next i
For i = 1 To Len (sIntStr) “рядок виповзла, тепер її таким же чином треба прибрати
lbStr.Caption = String (i, “”) & Mid (sIntStr, 1, Len (sIntStr) – i) “прибираємо рядок – відсікаємо символи
DoEvents “передаємо управління системі
          j = 1
Do While j <1500000 "теліпали лічильник
               j = j + 1
          Loop
     Next i
Exit_:
     Exit Function
Err_:
     Resume Exit_
End Function


Функцію анімації зробили, тепер її треба запустити. Використовуємо властивість форми – Таймер. Інтервал таймера поставимо наприклад 500. І вставимо процедуру:


Private Sub Form_Timer()
On Error GoTo Err_
     lab.ForeColor = 0
     StrAnime NomWers, Me.lab
     lab.ForeColor = 255
     StrAnime StrEnabled, Me.lab
Err_:
     Exit Sub
End Sub


Якщо Ви вирішите застосовувати розглянутий ефект анімації, то врахуйте, що він у якійсь мірі завантажує систему під час «тимчасової затримки» – адже доводиться ганяти цикли накрутки. Так само і швидкість руху рядка залежить від продуктивності системи: якщо машина вважає швидко, то й рядок буде так само літати.


Приклад, як це все працює, Ви можете завантажити нижче.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*