Delphi - Animált szaggatott vonal

forráskód letöltése
Egy grafikai objektum határvonalát sok esetben olyan vonallal jelölik, mely nem csak szaggatott, de ezek a rövid kis vonalak még mozognak is körbe-körbe.

Ebben a példában egy olyan komponenst mutatunk be, melynek segítségével egy tetszőleges méretben rajzoltathatunk ki ilyen mozgó vonalat. A komponens segítségével még a mozgás sebességét is befolyásolhatjuk. A mellékelt példaprogram megnyitása előtt a DotLine.pas-ban lévő komponenst telepítenie kell a Delphi alá.

Az animációt az Active property igazra állításával indíthatjuk el.

A kirajzoláshoz elengedhetetlen, hogy a Canvas nevű property-be egy már létező objektum Canvas property-ét értékül adjuk. Ettől kezdve viszont bármely olyan objektumra képes rajzolni a komponensünk, mely rendelkezik Canvas-al.

A keret pozícióit és méreteit a LineLeft, LineTop, LineRight és a LineBottom property-k segítségével állíthatjuk be.

A mozgás sebességét az Interval property szabályozza.

A vonal rajzolásához kétféle színt is meg kell adnunk. A ColorLine property-be egy olyan színt mely a vonal látható része lesz, míg a ColorTransparent-be kerül az a szín általában, mely az adott objektumnak is a színe, így ez úgy fog tűnni, mintha ezen a szakaszon átlátszó lenne a vonal. Ettől persze el is térhetünk és ekkor egy kétszínű vonal rohangál körbe-körbe.

A komponens működésének a lényege abban áll, hogy a LineDDA nevű eljárás segítségével felbontjuk pixelekre a téglalap egyes oldalait, így képesek vagyunk rövid kis szakaszokat rajzolni az oldalak mentén különböző színnel.