Delphi - A DecisionGraph komponens metódusai és eseményei

Decision Cube paletta 6. rész

forráskód letöltése
Az előző részben elsajátíthattuk a DecisionGraph komponens formázásának, szépítésének rejtelmeit. Most megnézzük, hogy hogyan tudnánk munkák eredményét elmenteni, kinyomtatni, vagy más alkalmazás keretében felhasználni. Megismerkedünk a komponens fontosabb metódusaival és eseményeivel is.
Példaprogramunk alapját az ötödik részben elkészített program alkotja. Ezt a példaprogramot fogjuk most továbbfejleszteni.
Metódusok
Ha több elemet kell megjelenítenünk egy grafikonon és kevés hely áll rendelkezésünkre, akkor meghatározhatjuk a grafikonon szereplő elemek számát, a MaxPointsPerPage tulajdonság értékének beállításával. Ha ennek értéke 0, akkor nem történik lapozás, ha bármi más, akkor az azt jelenti, hogy egy oldalon annyi elem jelenik meg. Ilyenkor a Page értékének változtatásával mozoghatunk az oldalak között. A NextPage és PreviousPage metódusok segítenek a lapozásban. Használatuk esetén nem kell figyelnünk arra, hogy túllépjük-e az oldalak számát, mert ezt a problémát automatikusan lekezelik.
Grafikonunk képét elmenthetjük a vágólapra háromfajta formátumban.
DecisionGraph1.CopyToClipboardBitmap;
DecisionGraph1.CopyToClipboardMetafile(False);
Ha a CopyToClipboardMetafile paramétere True, akkor a mentés EMF, False esetén WMF formátumba történik.
A képet nem csak vágólapra helyezhetjük el, hanem fájlba is menthetjük az alábbi két metódus segítségével.
DecisionGraph1.SaveToBitmapFile(Edit2.Text);
DecisionGraph1.SaveToMetafile(Edit2.Text);
Lehetőségünk van a grafikon kinyomtatására is. Nyomtatásra az alábbi metódusok szolgálnak:
DecisionGraph1.Print;
DecisionGraph1.PrintLandscape;
DecisionGraph1.PrintPortrait;
PrintLandscape esetén a nyomtatás fekvő lapra történik, PrintPortrait esetén pedig állóra.
Ha egy képzeletbeli téglalapot elhelyezünk a grafikon fölött, akkor az alatta elhelyezkedő területet kinagyíthatjuk.
procedure ZoomPercent(Const PercentZoom : Double);
procedure ZoomRect(Const Rect : TRect);
A ZoomPercent metódusban kell megadnunk a nagyítás százalékát, a ZoomRect metódusban pedig a téglalapot. A nagyítás az utóbbi meghívásával jön létre. A grafikont eredeti méretére az UndoZoom metódussal állíthatjuk vissza.
Események
Minden egyes lapozáskor írjuk ki az aktuális és az összes oldal számát. Ehhez az OnPageChange eseményt kell használnunk, melynek tartalma az alábbi lesz.
ShowMessage('Oldal: '+IntToStr((Sender as TDecisionGraph).Page)+'/'+IntToStr((Sender as TDecisionGraph).NumPages));
Az OnZoom esemény minden egyes nagyítás esetén meghívódik. Mivel a nagyítás több lépcsőben zajlik, az itt megírt algoritmus többször is lefut. Ennek az eseménynek az ellenkezője az OnUndoZoom. Ez csak egyszer fog lefutni, akkor hajtódik végre, amikor a grafikon visszaáll eredeti méretére.
Ha egy tengelyre kattintunk, az kiváltja az OnClickAxis eseményt. Példaprogramban ilyenkor kiírjuk a tengely nevét.
ShowMessage('A tengely neve: '+Axis.Title.Caption);
Az OnClickLegend tartalma akkor fut le, ha a tartalomjegyzékre kattintunk. Példaprogramunkban ilyenkor megváltoztatjuk a tartalomjegyzék háttérszínét.
Az OnClickBackGround ugyanúgy működik, mint az OnClickLegend, csak a grafikon hátterére vonatkozik.
Az OnGetLegendPos esemény a jelmagyarázat minden egyes elemének kirajzolása előtt meghívódik.
procedure DecisionGraph1GetLegendPos(Sender: TCustomChart;
  Index: Integer; var X, Y, XColor: Integer);
Itt befolyásolhatjuk az egyes sorok megjelenését. Példaprogramunkban minden második sort 2 képponttal beljebb jelenítünk meg.
Az OnGetLegendText az előbbi eseményhez hasonlóan kerül meghívásra. Itt lehetőségünk van a kiírás szövegének megváltoztatására.
Az OnGetAxisLabel szintén hasonló módon működik.

Decision Cube paletta cikksorozat