Delphi - Grafika létrehozása Corel Draw-ban

Corel 3. rész

forráskód letöltése
Soron következő CorelDraw példánkban rajzolni fogunk, valamint megnézzük, hogy egy objektumot hogyan tudunk textúrával kitölteni. Az előző részben szöveget jelenítettünk csak meg, most itt az ideje, hogy rajzoljunk is. A példaprogram egy Jing-Jang szimbólumot rajzol meg, némi "körítéssel".

A rajzolást a Button1 OnClick eseményénél hajtjuk végre:
procedure TForm1.Button1Click(Sender: TObject);
begin
Csatlakozunk a CorelDraw-hoz.
  Draw := CreateOleObject('CorelDraw.Automation.9');
Létrehozunk egy új dokumentumot, és megjelenítjük azt, valamint beállítjuk a nézet nagyítását az oldal szélességéhez viszonyítva.
  Draw.FileNew;
  Draw.SetDocVisible(True);
  Draw.ZoomToWidth;
Háttérnek rajzolunk egy kört, amit egy mintázattal töltünk ki. A nagy számok a paraméterekben ne ijesszenek meg senkit, ez azért van, mert a koordinátákat mikronban kell megadni.
A CreateEllipse függvénnyel tudunk kört, ellipszist, vagy körívet, körcikket rajzolni úgy, hogy a befoglaló négyszög koordinátáit adjuk meg a lap középpontjához képest relatívan. A függvénynek összesen 7 paramétere van:
  • Top: a befoglaló négyszög felső szélének koordinátája.
  • Left: a befoglaló négyszög bal szélének koordinátája.
  • Bottom: a befoglaló négyszög alsó szélének koordinátája.
  • Right: a befoglaló négyszög jobb szélének koordinátája.
  • StartAngle: kezdő szög.
  • EndAngle: befejező szög. Ha a kezdő szög és a befejező szög egyaránt 0, akkor teljes kört, illetve ellipszist rajzolunk.
  • Arc: ha nem teljes kört vagy ellipszist rajzolunk, akkor true érték esetén körcikket (kitöltött), míg false esetén csak körívet rajzol (egyszerű vonal, kitöltés nélkül).
  Draw.CreateEllipse(-700000, -700000, 700000, 700000, 0, 0, 0);
Az ApplyTextureFill függvénnyel töltjük ki az imént megrajzolt kört mintázattal. Ennek a függvénynek a következő paramétereket kell megadnunk:
  • TextureLibrary: a textúra library neve (pl. "Styles").
  • TextureName: a minta neve (pl "Sky 2 Colors").
  • TextureStyle: a minta stílusa. Ha a textúra library neve "Samples 5", akkor a stílus nevét "CDR5:"-tel kell kezdeni. Például "CDR5:Blue Valley".
  • TextureWidth: ha az érték kevesebb, mint 500, és a ScaleWidthObject be van állítva, akkor az objektum szélessége százalékban, egyébként a tényleges méret mikronban.
  • TextureHeight: ha az érték kevesebb, mint 500, és a ScaleWidthObject be van állítva, akkor az objektum magassága százalékban, egyébként a tényleges méret mikronban.
  • TextureOffsetX: a középponthoz viszonyított vízszintes eltolás.
  • TextureOffsetY: a középponthoz viszonyított függőleges eltolás.
  • RowOffset: true érték esetén sor, false esetén oszlop szerinti eltolás.
  • RowColumnOffset: a sor vagy oszlop szerinti eltolás mértéke százalékban.
  • ScaleWithObject: true esetén az objektum méretéhez igazítja a kitöltést.
  • RotationAngle: a kitöltés elforgatásának szöge (1 millióval meg kell szorozni).
  • SkewAngle: a kitöltés torzításának szöge (1 millióval meg kell szorozni).
  Draw.ApplyTextureFill('Styles', 'Sky 2 Colors', 'Sky 2 Colors', 100, 100, 0, 0, 0, 0, -1, 0, 0);
Első lépés: rajzolunk egy félkört, ami a szimbólum bal oldala lesz, és azt kitöltjük fekete színnel. A kitöltést az ApplyUniformFillColor függvény végzi.
  Draw.CreateEllipse(-500000, -500000, 500000, 500000, 90000000, 270000000, -1);
  Draw.StoreColor(5, 0, 0, 0, 0);
  Draw.ApplyUniformFillColor;
Második lépés: rajzolunk még egy félkört, ami az előzőnek pont a tükörképe lesz. A két félkör együtt egy kört alkot. Ezt a félkört fehérrel töltjük ki.
  Draw.CreateEllipse(-500000, -500000, 500000, 500000, 270000000, 90000000, -1);
  Draw.StoreColor(5, 255, 255, 255, 0);
  Draw.ApplyUniformFillColor;
Harmadik lépés: rajzolunk egy kört a függőleges átmérő alsó felére, aminek átmérője pontosan fele a két félkör által alkotott kör átmérőjének. Ennek színe fehér lesz.
  Draw.CreateEllipse(-500000, -250000, 0, 250000, 0, 0, 0);
  Draw.StoreColor(5, 0, 0, 0, 0);
  Draw.ApplyUniformFillColor;
Negyedik lépés: egy ugyanakkora kört rajzolunk, mint az előbb, pontosan az előző fölé. Ennek színe fehér lesz. Itt viszont már a körvonal színét is meg kell változtatnunk, hogy ne látszódjon, ezért ez is fehér lesz.
  Draw.CreateEllipse(500000, -250000, 0, 250000, 0, 0, 0);
  Draw.StoreColor(5, 255, 255, 255, 0);
  Draw.SetOutlineColor;
  Draw.StoreColor(5, 255, 255, 255, 0);
  Draw.ApplyUniformFillColor;
Ötödik lépés: rajzolunk egy kis fehér kört az alsó fekete kör közepébe.
  Draw.CreateEllipse(-125000, -125000, -375000, 125000, 0, 0, 0);
  Draw.StoreColor(5, 255, 255, 255, 0);
  Draw.ApplyUniformFillColor;
Hatodik lépés: rajzolunk egy kis fekete kört a felső fehér kör közepébe.
  Draw.CreateEllipse(375000, -125000, 125000, 125000, 0, 0, 0);
  Draw.StoreColor(5, 0, 0, 0, 0);
  Draw.ApplyUniformFillColor;
Frissítjük a képernyőt, és készen is vagyunk!
  Draw.RedrawScreen;
end;

Corel cikksorozat