A ceruza tulajdonságai delphi, delphi, delphi komponensek, delphi források

A program eredményét a 2. ábrán láthatjuk.

A ceruza tulajdonságai delphi, delphi, delphi komponensek, delphi források
Ebben a példában az esemény onPaint (amennyiben ez szükséges, hogy dolgozza át a forma) felváltva húzott vonal, különböző stílusokban. Erre a célra először kiválasztotta a kívánt stílust (például Canvas.Pen.Style:=psSolid kiválasztja stílus folytonos vonal).

Ezután a ceruza a vonal-vászon kiindulási pontjára mozog.MoveTo (x, y). A MoveTo módszer a ceruzát az x és y paraméterekhez megadott pozícióba mozgatja. Mozgáskor a vászonon nincs festmény, x és y nem centiméter, nem milliméter, hanem a képpontok száma (a képernyőpontok száma).

Az x koordinátája balra. Ez azt jelenti, hogy az ablak bal oldala egyenlő az x zéró pozícióval, és az ablak jobb oldala a maximális érték. De ez nem jelenti azt, hogy x nem lehet negatív vagy nagyobb, mint a maximális. Könnyedén megadhatja az értékeket minden probléma nélkül, csak azt kell figyelembe vennie, hogy a vonalnak az a része, amely túlmutat az ablakon.

Az y koordináta a tetejétől számít. Az ablak felső határa az y nullpontja. Ebben az esetben az ablak címe (az űrlap nevével és a rendszergombokkal együtt) nem szerepel az ablak ügyfélterületén.

Most vonalat kell húznunk a LineTo (x, y) módszerrel. A vonal végső koordinátái paraméterként kerülnek átvitelre. A szegmens lesz levonni a jelenlegi toll helyzetét, ahol átkeltünk a MoveTo módszer, és koordinálja a híváskor megadott LineTo módszer.

Az első sor rajzolása után válassza ki a következő stílust, és húzd 20 pixelre a már rajzolt vonal alatt. Ezután felhívja a következő sort.

Add hozzá programunkhoz a ceruza színének megváltoztatását. Ehhez a formanyomtatvány Dialogs (Dialogs) lapján a "Color change" (Színváltozás) és a coiorDialog összetevő feliratát helyezzük el. A coiorDialog komponens úgy van kialakítva, hogy megjelenítse a standard színválasztási párbeszédablakot. Az űrlapon úgy fog kinézni, mint egy egyszerű doboz ikonokkal, és nem lesz látható az indításkor.

Az eseményért # 111; nclick gombok írjuk a következő kódot:

ha ColorDialogl.Execute akkor

A kód első sorában megjelenik a színkiválasztó ablak (ColorDialog1, Execute). Ha a felhasználó egy színt választott, és nem kattintott az OK gombra (a törlés megszakítása vagy a fejlécben található gomb megnyomása), az ablak hamis. Ezért ellenőrizzük, hogy az ablakkijelzés eredménye igaz-e, majd módosítsa a színt:

ha ColorDialogl.Execute, majd Változtassa meg a vászon színét

Szeretném emlékeztetni Önt arra, hogy alapértelmezésben az if konstrukció a megadott kódot igaznak tekinti, hacsak másként nincs megadva. Ennek kapcsán ugyanez a konstrukció a következőképpen írható:

ha ColorDialogl.Execute = true, majd módosítsa a vászon színét

A kiválasztott szín eredménye a ColorDialogl összetevő Color tulajdonságára íródik. Ez az, amit hozzárendelünk a ceruza vászon színéhez.Pen.color. Ezután csak át kell venned a képet. Ehhez az OnPaint eseménykezelőre vonatkozó eljárást kifejezetten hívják. Számunkra a kimeneti ügynököt FormPaint-nak nevezzük, és szükség van rá.

Futtathatja a programot, és ellenőrizheti a sorszínek megváltoztatásának eredményét.

Most adjuk hozzá a vonalvastagság kiválasztásának képességét. Ehhez telepítse az upDown összetevőt a Win32 fülről. Az eseményért # 111; nclick ezt az összetevőt, írja be a következő kódot:

eljárás TFormi.UpDownlClick (Feladó: TObject; Gomb: TUDBtnType);

Az UpDown komponens két gombból áll. A felső gomb növeli a belső számlálót. Alsó - csökkenti. A számláló aktuális értéke a Pozíció tulajdonságban olvasható. Ezt az értéket hozzárendeljük a vászon ceruza szélességéhez. Pen. Szélesség.

Ezt követően a Repaint fő formájának módját nevezik. Ez a módszer olyan eseményt hoz létre, amely át szeretné átírni az ablak tartalmát. Ez azt jelenti, hogy az onPaint eseménykezelő automatikusan hívásra kerül. Az eredmény megegyezik azzal, hogy közvetlenül hívja a kezelőt, ahogy a színváltozás után történt. De ez a módszer helyesebbnek tekinthető.

TIP. Ha beszélünk, mi a helyes út több, mindkettő működik gond nélkül, csak a második módszer inkább esztétikai és szép, de szükség további költségeket a generációs üzenetek a szükségességét, hogy dolgozza át az ablakon.

Segíts a projektnek! Mondd el a barátaidnak ezt a webhelyet: