100 komponensek Delphi - a kijelző grafikus a vásznon vászon

4.2 Bemutatás grafika vászon Vászon

Canvas Canvas nem képezi részét, úgy, hogy szigorúan véve nem tekinthető része a könyv. De mivel számos elemét, különösen, alakú, vászon és vászon lehetővé teszi, hogy megjelenítse a különböző grafikus információ, néhány kezdeti adatok a vásznon még mindig ajánlatos adni.

Canvas képviseli a terület a komponens, amely lehet festett vagy kész kép megjelenítését. Ez tartalmazza tulajdonságok és módszerek, hogy nagyban egyszerűsíti Delphi ütemezés. Minden komplex interakciók vannak rejtve a felhasználó, hogy a festék a Delphi tud egy ember, nem járatos a számítógépes grafika.

Minden pont a vászon koordinátái X és Y koordináta-rendszer, a vászon, mint másutt a Delphi, a start bal felső sarkában a vásznon. X koordináta értéke növekszik, ahogy mozog balról jobbra, és a koordináta Y - mozog, fentről lefelé. Koordinátákat képpontban mérve. A pixel - a legkisebb elem a rajz felületre, amely lehet manipulálni. A legfontosabb tulajdonsága egy pixel - ez a szín.

Canvas az a pixel tulajdonság. Ez a tulajdonság egy kétdimenziós tömb, amely felelős a színe a vásznon. Például Canvas.Pixels [10,20] egyezik a színe a pixel a bal oldalon a 10. és 20. a tetején. Egy sor pixel lehet kezelni, mint bármely vagyon hogy a színe megváltozik megadásával egy új értéket, vagy megállapítani a színét értéke abban tároljuk. Például, Canvas.Pixels [10,20]: = 0 vagy Canvas.Pixels [10,20]: = clBlack - referencia-pixel fekete.

Pixel tulajdonság használt festék a vásznon. Próbáljuk felhívni a szinusz görbe pixelek formájában vászon. Ehhez az eseménykezelő alkotnak OnPaint (rajz), akkor helyezze be a következő kódot:

Ezt a tesztet alkalmazás, és látni fogja az eredményt ábrán látható. És 4.1. Menetrend szinuszhullám kiderült, bár nem túl jó, mert Meg van osztva az egyes pontokat - pixel.

Ábra. 4.1
Ütemezése szinusz kialakítva pixel (a) és vonalak (b)

Canvas „/> Style tulajdonság határozza meg, hogy milyen típusú vonal Ez a tulajdonság a következő értékeket .:

A folytonos vonal, de szélesség> 1 lehet színes, nem Windows-paletta

A vászon ott PenPos ingatlan típusa TPoint (cm.). Ez a tulajdonság határozza meg a koordinátákat a vásznon a jelenlegi helyzetben a tollat. Mozgassa a tollat ​​nélkül rajzoljon egy vonalat, azaz a megváltoztatni PenPos. által termelt vászon MoveTo (X, Y). Itt (X, Y) - a koordinátákat a pontok, ahol a toll mozog. Ez az áram válik a kiindulási pont, ahonnan felhívni egy vonalat a ponton koordinátái (X, Y) által LineTo (X, Y). Ebben az esetben az aktuális pont végére kerül pont a vonal és az új hívás fog végezni LineTo pont az új aktuális pont.

Próbáljuk felhívni a grafikon a szinusz tollat ​​az előző példában. Ebben az esetben az eseménykezelő OnPaint formái lehetnek:

Az eredmény az alkalmazás ebben a változatban látható ábra. 4.1 b. Mint látható, a grafikai minőség jelentősen javult.

Pen levonhatjuk nem csak egyenes vonalak, hanem a forma. Teljes lista a vászon módszerek alkalmazásával a tollat, lásd. A beépített Delphi segítséget. Közben példaként, itt csak az egyiket - ellipszis. hogy felhívja ellipszis vagy kör. Megállapítást nyer, mint ahol a paraméterek X1, X2, Y1, Y2 határozzák meg a koordinátáit téglalap körülölelő ellipszis vagy kör. Például, az üzemeltető egy kört rajzol átmérőjű 10 és középpontjának koordinátái (15, 45).

Az ábrák sem üres általában, és a kitöltött segítségével a tulajdon a vászon Brush - ecset. Brush tulajdonság egy tárgy, amely viszont számos tulajdonságait. Color tulajdonság határozza meg a színét a tölteléket. Stílus tulajdonság határozza meg a töltési minta (árnyékolás). Default Style érték bsSolid. ami azt jelenti, folyamatos fogmosás szín szín.

Ez a funkció pmNotXor módban lehet használni, hogy az egyszerű animációk. Elég, hogy dolgozzon valamit, majd törölje készült, rajzolni kissé módosított - és a kép kerül bemutatásra újítani.

Így adja meg a globális változókat X és Y - koordinálja az aktuális kép.

Abban az esetben, az űrlap OnPaint betét nyilatkozatok

Az első ilyen szolgáltató határozza meg a fehér szín ecset. Így a kör lesz a fogantyú fehér színű. A második üzemeltető határozza meg a háttér színe a fehér felület a penész. A harmadik utasítás megadja pmNotXor toll módra. amely lehetővé teszi, hogy törölje a régi képet festés előtt az új.

Még a legegyszerűbb animáció igényel szinkronizálást. Ellenkező esetben a sebesség határozza meg a számítógép sebességét. Ezért át az alak a komponens Timer - időzítő rendszer az oldalt. Ez a komponens a szakaszban ismertetett 5.7. Láthatjuk van egy részletes leírást. Addig, beállíthatjuk a Interval tulajdonság, például 30 (ez a tartózkodási időt ezredmásodpercben, de a tényleges expozíciós idő hosszabb lesz - lásd 5.7.), És állítsa be az Engedélyezve tulajdonságot false (ez azt jelenti, hogy az időzítő nem indul el automatikusan, amikor az alkalmazás elindul ).

Az eseménykezelő a betét alkatrész OnTimer szereplők

Az első ilyen szereplők egy kört rajzol a ponton, ahol azt előzőleg festett, azaz törli az előző képet. További növekszik Inc függvényében az aktuális koordináta X és a kép egy kör látható az új pozícióban. Az utolsó operátor leállítja a kép szélén a forma.

Most húzza az alak a gomb gombra, majd felvezető rajta hozott szereplők

Az első két állítás beállítani a kezdeti koordinátáit a kör. A harmadik állítás kört rajzol a kiindulási helyzetébe, és a negyedik - elindítja az időzítőt.

Fog sugározni a kérelmet, futtatni, kattintson a gombra. Meglátod egy kép a kör, mozgassa a forma balról jobbra. És akkor is, csatlakoztassa a képzelet és átalakítani, hogy nem túl érdekes alkalmazás valami izgalmasabb.

A vászon meg tudja jeleníteni nemcsak a létrehozott szoftver kép, de a kép tárolt adatok a képfájlt. Csak ő nem vázol módszerek letölteni a fájlt. Ezért szükséges, hogy töltse le a fájlt más grafikus objektum, amely képes fogadni az információt a képfájlokat. És akkor átírják a kép a tárgy a vásznon a vászon Draw módszer. Az ő leírása:

Itt a paraméterek X és Y koordinátáit határozza meg a bal felső sarokban a kép kerül a vászonra, a Graphic - egy tárgy, benne. B lehet, például, egy objektum, például egy típusú TBitMap objektumot. tárolására bites mátrixok. Lássuk, hogyan néz ki a gyakorlatban.

Nyissa meg az új alkalmazást, húzza az alak a komponens Párbeszédpanelek OpenPictureDialog oldal (összetevője a párbeszéd megnyitása képfájlokat - lásd 8.2.) És egy gombot. OpenPictureDialog bárhol a formában, ahogy ez a nem vizuális komponens, és helyezze a gomb alján formájában. A kattintás kezelőjét a gombot, a program a kódot:

Ez a kód létrehoz egy ideiglenes objektum TBitMap típusú elemzi BitMap. Ezután felhívja a nyílt párbeszéd OpenPictureDialog1 grafikus fájlt, és ha a felhasználó kiválaszt egy fájlt, akkor betöltődik BitMap módszer LoadFromFile. Döntetlen módszer akkor a letöltött kép kerül a vászonra a régióban, a bal felső sarokban koordináták (10, 10). Ezt követően az objektum megsemmisül BitMap.

Indítsa el a kérelmet, és kattintson a gombra. Meg fogja találni, hogy lehet feltölteni bármilyen képfájlt írja .bmp, és úgy tűnik, az űrlap vászon (lásd. Ábra. 4.2 a). A képfájlok találhatók a Képek mappában. A Delphi 5 és 4, általában abban a könyvtárban található. \ Program Files \ Common Files \ Borland Shared. A Delphi 3, ez található a könyvtárban. \ Program Files \ Borland \ Delphi 3 és Delphi 1 - Delphi katalógus 16. A katalógus képek már, különösen az al-könyvtár \ Images \ Splash \ 16Color \, ahol a fájlt tároljuk, betöltve az lA. 4.2.

A kép a vásznon a kép fájl (ok) és a törlés (b) átfedés miatt egy másik ablakban

You „/> Láthatjuk, hogy ha az ablak bármely más alkalmazás bezárul idején az alkalmazás, a kép vászonra festve alakja romlik. Lássuk, hogyan lehet kiküszöbölni ezt a hátrányt.

Ha az ablak le van tiltva, és a kép romlik, az operációs rendszer tájékoztatja a kérelmet, hogy a környezet megváltozott, és hogy az alkalmazás kell tennie a szükséges lépéseket. Amint, hogy frissíteni kell windows OnPaint esemény generálódik érte. A felvezető ez az esemény (ebben az esetben az események alkotnak) van szükség, hogy dolgozza át a képet.

Tedd ezt, és látni fogja, hogy a képet a forma nem romlik semmilyen felső ablakok.

A módszer átmásolja a megadott paraméter Forrás kép régióban a vászon Vászon kép forrása az említett régióban a Cél paraméter vásznon. TRect típusát. amely jellemzi a téglalap alakú terület Forrás és Dest. Már leírták 3.2. Például az operátor lemásolja a körvonal alakját a képmező MyRect2 MyRect1 vászon Bitmap komponenst.

Ezek az alapvető tényeket a visszavonás a grafikus információt a vázlat korlátozzuk magunkat. 3.2 számoltak információt a visszavonás a szöveget a vásznon. Általában vázlat - komplex objektum több tulajdonságok és módszerek. De ehhez szükség van egy teljes körű vita, amely túlmutat e könyv. A következő könyv a sorozat „All About Delphi» Ezeket a kérdéseket tárgyaljuk részletesen.

Kapcsolódó cikkek