
A mellékelt példaprogram megnyitása előtt a ScrollText.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens Text tulajdonságában kell megadnunk azt a max. 255 karakteres szöveget, amelyet meg szeretnénk jeleníteni. Ennek a szövegnek a tulajdonságait a Font tulajdonság beállításával adhatjuk meg. Az Interval tulajdonság segítségével időzíthetjük a szöveg kiírását. Ha meg akarjuk állítani a szöveg mozgását, akkor az Active tulajdonság értékét hamisra kell állítanunk, majd ha azt ismét visszaállítjuk igazra, akkor a szöveg újra elindul.
A ScrollText komponenst a TGraphicControl osztályból származtatjuk, mivel egy grafikus komponensre van szükségünk.
A komponensnek azt kell megvalósítania, hogy egy tetszőleges, beírt szöveget, beállítható betű tulajdonságokkal megadott időközönként jobbról balra mozgasson.
A betűtípus beállításához a TFont osztályt fogjuk használni a Font tulajdonságon keresztül.
A betűk mozgatásához szükségünk van egy időzítő, azaz TTimer komponensre. Ezt az FTimer változó képviseli. Szükség van egy Interval tulajdonságra is, amellyel a fényújság sebességét befolyásolhatjuk. Amikor komponensünk Interval tulajdonságát állítjuk, tulajdonképpen az FTimer változó Interval értékét kell állítanunk.
A megjelenítendő szöveget a Text String típusú tulajdonságon keresztül állíthatjuk be. Az Active tulajdonság igazra vagy hamisra állításával a fényújság működését kapcsolhatjuk ki vagy be.
A Create metódusban hozzuk létre az FTimer és az FFont objektumokat. Az FTimer OnTimer eseményének lekezelésére a DoTimer eljárást hívjuk meg.
procedure TScrollText.DoTimer(Sender: TObject);
begin
Dec(FX);
if FX+Canvas.TextWidth(FText)<0 then FX:=Width;
Invalidate;
end;
A fényújság jobbról balra fogja mozgatni a szöveget, olvasásunk irányának megfelelően. A kiírás kezdetét az FX privát változó értéke adja meg. A DoTimer metódusban addig kell csökkentenünk az FX értékét, ameddig a teljes szöveg el nem tűnik a fényújságról. Ekkor kezdhetjük a kiírást, előröl. Az Invalidate utasítással tudjuk meghívni a Paint metódust.
Amikor változtatjuk a szöveg (Text) tulajdonságot, akkor a kiírást előröl kell kezdeni, tehát FX értékét Width-re kell állítani.
A kirajzolást a Paint metódus felülírásával tudjuk megvalósítani.
procedure TScrollText.Paint;
begin
inherited;
Canvas.FillRect(Rect(FX,Height div 2 - Canvas.TextHeight(FText) div 2,Width,Height div 2 - Canvas.TextHeight(FText) div 2 + Canvas.TextHeight(FText)));
Canvas.TextOut(FX,Height div 2 - Canvas.TextHeight(FText) div 2,FText);
end;
Mielőtt kiírjuk szövegünket az új koordinátákkal, le kell törölnünk a régit. A törlést a FillRect metódussal végezzük, a koordinátákat a szöveg közvetlen környezetére korlátozzuk.
Végül nincs más hátra, mint kiírni a szöveget az új koordinátára.
A szöveg kiírásához a TCanvas osztályt használjuk. A Canvas.Font tulajdonságot be kell állítanunk az FFont objektum értékeinek megfelelően. Ezt a SetFont metódusban tesszük meg.
procedure TScrollText.SetFont(Value: TFont);
begin
FFont.Assign(Value);
Canvas.Font:=FFont;
end;