Delphi - A DecisionPivot komponens

Decision Cube paletta 4. rész

forráskód letöltése
Folytatva a Decision Cube palettáról szóló sorozatunkat, most a DecisionPivot komponens tulajdonságaival ismerkedünk meg részletesebben.
A DecisionPivot a Decision Cube család „vezérlő” eleme. Tulajdonképpen egy panel, amelyen egy megjelenő lista segítségével kiválaszthatjuk a használni kívánt összesítést, valamint ki- és bekapcsolgathatjuk az ahhoz tartozó adatdimenziók megjelenítését.
A DecisionCube-hoz egy DecisionSource komponensen keresztül kapcsolhatjuk hozzá. Ehhez a DecisionSource tulajdonságban meg kell adnunk a megfelelő TDecisionSource objektum nevét. Ha ezt megtettük és az adathalmaz is aktív állapotban van, akkor a Pivot azonnal használhatóvá válik. Elég hozzákapcsolnunk az adatforráshoz, és máris képes vezérelni a DecisionGrid és DecisionGraph komponensekben megjelenítendő adatokat.
Ha több DecisionPivot komponenst helyezünk el egy Form-on, és azokat egy DecisionSource-hoz kapcsoljuk hozzá, akkor azok szinkronizáltan működnek. Bármelyiket is használjuk, a másik mindig követi a változásokat.
Amikor elhelyezzük a komponenst a Form-on, akkor minden egyes eleme látszik. Az egyes elemek automatikusan méreteződnek a Pivot Width értékéhez igazodva. Ha a gombok méretét, vagy a közöttük lévő távolságot meg szeretnénk változtatni, akkor ButtonAutoSize értékét hamisra kell állítanunk. Ekkor életbe lépnek a ButtonHeight, ButtonWidth és ButtonSpacing tulajdonságok. Ha a ButtonAutoSize értéke igaz, akkor ezeket hiába állítgatjuk, nem történik semmi változás.
A GroupLayout-on keresztül állíthatjuk be a Pivot elemeinek elhelyezkedését. xtHorizontal - vízszintes, xtVertical - függőleges. Ha az xtLeftTop értéket választjuk, akkor a gombok két dimenzió mentén fognak elhelyezkedni úgy, ahogyan a DecisionGrid fejlécei is megjelennek.
Azt, hogy mit is jelenítsen meg a Pivot, a Groups tulajdonság segítségével állíthatjuk be. Itt három logikai érték található. Ezek igaz érték esetén megjelenítik a hozzájuk tartozó csoportot, ellenkező esetben eltüntetik azt. Ezek a csoportok a következők: xtRows - sorok, xtColumns - oszlopok, xtSummaries - összesítések. Az oszlopokat és sorokat itt úgy kell elképzelni, mintha egy DecisionGrid-et látnánk, két dimenzióban. Ami ott az oszlop részben helyezkedik el, az itt is az oszlop csoport része, ami ott a sor részben van, az itt is sor.
Az egyes csoportok közötti képpontok számát a GroupSpacing segítségével állíthatjuk be.
A Pivot áthelyezéséhez és átméretezéséhez használhatjuk a SetBounds függvényt. Ha az átméretezést a normál tulajdonságok módosításával végezzük, akkor a felhasználó folyamatosan nyomon követheti a változásokat a képernyőn. A SetBounds metódus a méretezést egy lépésben hajtja végre, eltüntetve az átmenetet.
Ha a Pivot elhelyezkedését vízszintesről függőlegesre váltjuk át, akkor a GroupLayout tulajdonságról nekünk kell gondoskodnunk, mint a példaprogramban is.
DecisionPivot1.SetBounds(6,0,50,457);
DecisionPivot1.GroupLayout:=xtVertical;
A SetBounds első két paramétere az x és y koordináta, a második kettő szélesség és magasság. Fontos, hogy nem a téglalap négy sarkát kell megadnunk.
Példaprogramunkban most is az első rész példaprogramját használjuk fel és azt bővítjük. Helyezzünk el még egy DecisionPivot komponenst alulra, a grafikon alá. Ennek is állítsuk be a DecisionSource tulajdonságát DecisionSource1-re. Láthatóvá válik, hogy bármelyik Pivot-ot is használjuk, a másik is változik. Próbáljuk ki a SetBounds függvényt is. Ha duplán rákattintunk egy Pivot-ra, akkor elhelyezkedése változzon függőlegesre, majd vissza. A dupla kattintás csak akkor működik, ha azt nem egy gomb fölött tesszük.

Decision Cube paletta cikksorozat