HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

3D hatást keltő szöveg készítése


Példaprogram letöltése

4435 bájt

Mai cikkünkben egy egyszerű trükk segítségével készítünk egy olyan komponenst, mely egy adott szöveget átalakít úgy, hogy az 3 dimenziós hatást keltsen. A komponensben megadható a betű típusa, stílusa, mérete, valamint a kiemelés színei.

A mellékelt példaprogram megnyitása előtt a ThreeDText.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A különleges hatást úgy érjük el, hogy a szöveget kiíratjuk négyszer egymás után, egymáshoz képest kissé eltolva. Mivel a szöveget képként kezeljük, szükségünk lesz egy objektumra, melynek a Canvas-ára rajzolhatunk. Első lépésként hozzuk létre a komponensünkben a megfelelő property-ket, melyeken keresztül beállíthatjuk a megjelenítendő szöveg tulajdonságait.
  private
    { Private declarations }
    fFontName:TFontName;
    fFontStyle:TFontStyles;
    fTextColor:TColor;
    fFontSize:integer;
    fShadowColor1:TColor;
    fShadowColor2:TColor;
    fShadowColor3:TColor;
    fUpCorner:integer;
    fLeftCorner:Integer;
Ezután készítünk egy Paint nevű függvényt, mely paraméterként egy objektum rajzterületét várja, valamint a megjelenítendő szöveget.
procedure TThreeDText.Paint(Canvas:TCanvas; Text:String);
begin
A rajzterület tulajdonságait beállítjuk a komponens published property-jeiben megadott értékeknek megfelelően.
 Canvas.Brush.Style := bsClear;
 Canvas.Font.Style := fFontStyle;
 Canvas.Font.Name := fFontName;
 Canvas.Font.Size := fFontSize;
 Canvas.Font.Color := fShadowColor1;
Az fUpCorner és fLeftCorner változókban a kiírandó szövegnek rajzterület bal felső sarkától mért távolságát adjuk meg. Ezt fokozatosan csökkentjük 1-el balra és 1-el felfelé, miközben újra kiíratjuk a szöveget más-más színnel. Így az elsőnek kirajzolt szöveg marad legalul, míg az utoljára kirajzolt legfelül.
 Canvas.TextOut(fUpCorner, fLeftCorner, Text);
 Canvas.Font.Color := fShadowColor2;
 Canvas.TextOut(fUpCorner - 1, fLeftCorner - 1, Text);
 Canvas.Font.Color := fShadowColor3;
 Canvas.TextOut(fUpCorner - 2, fLeftCorner - 2, Text);
 Canvas.Font.Color := fTextColor;
 Canvas.TextOut(fUpCorner - 3, fLeftCorner - 3, Text);
end;
A mellékelt példaprogramban egy Image-re rajzolunk. A Paint függvényt a következőképpen hívjuk meg.
  ThreeDText1.Paint(Image1.Canvas, 'Animare Software');
Az Image Transparent tulajdonságát igazra állítottuk, így az nem látszik futási időben.

Cikksorozat



Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 556. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |