Program JBW FineTicker służy do wyświetlania na ekranie komputera paska z przesuwanymi tekstami i obrazkami w sposób, jaki znamy z telewizyjnych serwisów. Działa w systemie Windows XP lub nowszym, wykorzystując bibliotekę DirectX 9. Nawet tak prosta animacja GIF, jak pokazana obok, wyświetlana jest nierównomiernie, co obrazuje problemy występujące w systemie Windows. Opisywany program skutecznie sobie z nimi radzi.
o programie
Program odczytuje dane z pliku tekstowego i wyświetla je, płynnie przesuwając po ekranie z określoną prędkością. Za pomocą licznych parametrów można wpływać na wygląd tekstu i jego zachowanie.
Program odczytuje wskazany plik i przechowuje go w pamięci podczas przetwarzania. Po zakończeniu odczytuje plik od nowa, więc może to być w kółko ten sam tekst lub można go zmieniać, aktualizując plik przy pomocy innego programu. Jeżeli brak pliku z danymi, program wyświetla tekst "awaryjny", który można zdefiniować w wierszu poleceń, użytym do uruchomienia programu.
W systemie Vista lub nowszym można ponadto sprawić, aby tło i/lub litery były całkowicie lub częściowo przezroczyste.
Wszelkie efekty wizualne, włącznie z jednostajnym ruchem tekstu, są zrealizowane poprzez system dołączanych funkcji o bardzo prostej budowie, dzięki czemu dodawanie "wodotrysków" jest bardzo łatwe. Przykładowo, za jednostajne przesuwanie się tekstu odpowiada funkcja:
Otrzymuje ona wskaźnik do obiektu, którym ma sterować, oraz czas, jaki upłynął od poprzedniego wywołania. Zmienia położenie obiektu na ekranie stosownie do zawartej w nim informacji o szybkości. Kończąc zwraca wartość true, jeżeli obiekt ma pozostać w użyciu, a false jeżeli należy go unicestwić. W tym przypadku werdykt pochodzi z funkcji InBox(), która weryfikuje, czy obiekt mieści się w granicach widzialnego obszaru.
Mając dostęp do wszystkich atrybutów obiektu, np. do prędkości obrotowej i aktualnego kąta obrotu, możemy łatwo wprawić obiekt w ruch wirowy:
współrzędne okna, domyślnie na środku ekranu, ¼ powierzchni
c
expire=<liczba>
po tylu sekundach program samoczynnie kończy pracę, domyślnie 0 = nigdy
c
id=<liczba>
ID okienka, domyślnie 1
c
font=<krój>,<rozmiar>,b,i
parametry tekstu: b = pogrubienie, i = pochylenie, np. font=Times+New+Roman,120 (plusy zamiast odstępów)
c t
color=<kolor>
kolor znaków, można podać jako liczbę szesnastkową lub składowe [a,]r,g,b
c t
bgcolor=<kolor>
kolor tła, można podać jako liczbę szesnastkową lub składowe [a,]r,g,b
c t
anycolor
program wybiera losowo kolor znaków
c t
anybgcolor
program wybiera losowo kolor tła
c t
anycolors
program wybiera losowo kolor tła i znaków
c
speed=<liczba>
prędkość przesuwania tekstu, dodatnie w prawo, ujemne w lewo
c
source=<ścieżka pliku>
wskazuje źródło danych, domyślnie plik content.txt
c
imgdir=<ścieżka folderu>
wskazuje folder z plikami obrazów, domyślnie image
c
imgfit
skaluje obrazki do wysokości tekstu
c
default=<tekst+bez+odstępów>
tekst wyświetlany domyślnie gdy brak pliku źródłowego
c t
shadow=<przesunięcie>,<przezroczystość>
parametry cienia rzucanego przez tekst, domyślnie 2,204
t-
blink
pomruguje następnym elementem
t-
spin=<liczba>
w stopniech na jednostkę czasu, obraca następny element
t-
jumpy=<liczba>
amplituda w pikselach, element trzęsie się nerwowo
c t-
grow=<liczba>
w procentach na kwant czasu, zmienia wielkość elementu
c
bottom-band
ustawia okienko w postaci paska na dole ekranu
c
border
włącza obramowanie okienka (domyślne dla okienek innych niż bottom-band)
c
noborder
wyłącza obramowanie okna (domyślne dla bottom-band)
c
ontop
utrzymuje okienko zawsze na wierzchu
c
glass
w systemie Windows Vista lub nowszym włącza dostępność efektu przezroczystości (zależnego od koloru tła)
uwagi
Plik źródłowy, podobnie jak wiersz poleceń, jest rozbierany na pojedyncze elementy rozdzielone spacjami lub końcami wiersza. Wewnątrz takiego elementu nie może być spacji, a tam, gdzie są niezbędne (np. w nazwie kroju czcionki), zastępujemy je znakiem „+”. W opcji default w tekście nie można ponadto użyć znaku „=”, który w tym przypadku zastępujemy znakiem „~”.
Opcja ulotna to taka, której działanie dotyczy tylko jednego elementu, a zmieniony parametr powraca samoczynnie do domyślnej wartości.
Przy określeniu czcionki kolejność parametrów nie ma znaczenia i można pomijać dowolne z nich, przy czym dla kroju i rozmiaru domyślna jest dotychczasowa wartość, a dla pogrubienia i pochylenia – ich brak. np. font=b,200 to styl pogrubiony prosty o wysokości 200 pikseli.
Kolor liter definiowany poleceniem color wewnątrz tekstu działa aż do następnego użycia tego polecenia, przy czym postać color= powoduje powrót do domyślnych ustawień.
Jeśli przy określeniu koloru zostaną użyte składowe r, g, b albo 6-cyfrowa liczba szesnastkowa, wówczas program uzupełnia taką definicję o bajt przezroczystości równy 255 (całkowicie nieprzezroczyste). Aby ustalić inny stopień przezroczystości, należy podać kolor czterema składowymi: a, r, g, b lub 8-cyfrową liczbą szesnastkową.
Pełna przezroczystość tła wymaga podania koloru 00000000 lub 0,0,0,0. Analogicznie wymusza się przezroczystość tekstu, przy czym pod przezroczystym tekstem nie ma tła, co daje możliwość interesujących efektów, np. literowych dziur w litym tle.
Program jest wyposażony w wewnętrzny „pluginowy” system efektów, a blink, spin, jumpy i grow są tylko trywialnymi przykładami. Dodanie do wiersza poleceń opcji grow=5 powoduje powiększanie tekstu o 5% na jednostkę czasu, a ponieważ odstępy w tekście się nie zmieniają, powstaje interesująca kompozycja (choć mało praktyczna z uwagi na czytelność). Bardzo łatwo można dodawać nowe efekty.
Tekst jest przechowywany w pamięci programu, a czcionka i obrazy – w pamięci karty graficznej. Dlatego należy unikać przesadnie dużych rozmiarów liter i ilustracji w stosunku do posiadanej pamięci karty graficznej, bo jej przepełnienie powoduje problemy wydajnościowe (zrywanie płynności wyświetlania).