Lecke №2 (esemény kezelése, menekülő gomb)

Lecke №2 (Event Processing, menekülő gomb)

Ebben a leírásban megpróbálom elmagyarázni, hogyan lehet létrehozni egy esemény feldolgozása. Kezdjük azzal, hogy azt fogja magyarázni, hogy egy ilyen eseményt. Esemény (angol esemény) - ez akkor valószínűleg sejtette, hogy ez egy helyzet, amikor valami történik. Itt például, akkor nyomja meg a gombot, itt, ahol a feldolgozás történik, ezt az eseményt. Az első lecke volt, csak obrabytka esetén a gomb megnyomásával, én konkrétan nem megy bele a részletekbe. Különösen, ha minden lehetetlen emlékezni.

Ez szükséges ahhoz, hogy egy kitérőt. Az operációs rendszer épül, oly módon, hogy folyamatosan feldolgozza az üzeneteket válaszként a felhasználói műveletekre, annak lenyomva a billentyűzet és egér. Nagyon gyakran kiderül, hogy a rendszer vár felhasználói bevitelt. És akkor kezdődik, hogy bizonyos műveleteket nem nagyon egyszerű, vagy akár igen bonyolult műveleteket.

Tehát, bizonyos intézkedéseket a felhasználó az alkalmazás kéri bizonyos rutinok. Ezek az események nagyon, hogy minden nem veszik figyelembe, de vegyük példaként egy egyszerű példát.

Lecke №2 (esemény kezelése, menekülő gomb)
Ehhez nyisson meg egy új Delphi project. Méretének csökkentése a fő formája. Azt javaslom, hogy a következő beállításokat. Ehhez állítsa be a tulajdonságokat a formáját mérete Szélesség (Width) és a Magasság (Height)) hozzárendeli a 300, ez elég. Van egy négyszögletes ablakot. Ebben meg fogjuk küldeni gombra. címke tulajdonság (Caption) arra utalnak, hogy a változás „output”. Mégis, megtudhatja a parancs bezárja az alkalmazást. Azt is megváltoztathatja a címet a formában egy ilyen kívánság, akkor nem rontja el a megjelenést a kérelmet. És akkor kap ugyanaz a dolog, hogy én nem engedélyezte a képen.

Most, miután már befejezte a tervezési program kell mozgatni a tényleges programozás. Természetesen kialakítása meglehetősen primitív, de még mindig korlátozott.

Lecke №2 (esemény kezelése, menekülő gomb)
Programozási indul azzal a ténnyel, hogy meg kell osztania a egyetlen gomb akkor megy Object Inspector. Úgy dönt, az Események fülre - ez egy listát az események a gomb, így biztos, hogy ki a gombot. Gombot lehet választani több szempontból is. Meg tudod csinálni a legördülő listából az Object Inspector. Nagyon gyakran szükség van rá oly módon, amikor a komponenst elveszett az úton. Ennek oka lehet, hogy a kis méret és az átfedést egy másik, nagyobb, komponens. Mi érdekli az esemény OnClick. Az első példában az általunk használt események, de valószínűleg nem tudta ezt. Be kell, hogy dupla kattintás az egér egy üres mezőbe a mező jobb oldalán a felirat OnClick. Delphi ha egyszer nyitva az ablakot a programkód, amely már elő a cím és a befejezés, és csak ki kell írni a kódot, hogy szeretne végre kell hajtani. Felhívjuk figyelmét, hogy a pont a tárgy ellenőr hol kattintott az egérrel megjelent Button1Click felirata azt jelenti, hogy a hozzáadott eseményt, és ő kapta ezt a nevet. Azt javaslom, hogy futam elnevezésű gomb ki, majd mindent megtenni kijött a program. Ha most fut az alkalmazás, hogy ezt, akkor sem kattintva, vagy egyszerűen nyomja meg az F9 billentyűt a billentyűzeten. Miután Delphi létrehoz egy befejezett projekt, és fut le, akkor létrehoz egy egyszerű projekt azonnal, akkor győződjön meg arról, hogy semmi sem történik, ha rákattint a gombra. Csukd be a programot, és hagyja, hogy mi a program folytatásához. Ismét nézd meg az Object Inspector, ott látni fogja, hogy a terület, ahol volt egy üres Button1Click felirattal. Ez mindig megtörténik, ha már nem vett végrehajtható kódot, Delphi eltávolítja az üres rutin. A programot nézett volna egy kicsit olvashatóbb, ha részt vett a főcím az összes események minden objektum.

Most arra van szükség, hogy ismét létre egy eseménykezelő az onclick esemény. Remélem még emlékszik, hogyan kell csinálni. Az eredményül kapott szöveg rutinok.

.
eljárás TForm1.Button1Click (Sender: TObject);
kezdődik

Között kezdődnek és végződnek írásutasítás bezárása szereplők;

Ezt követően adjunk egy másik eseménykezelő. Ezúttal ez onMouseMove Ez az esemény akkor aktiválódik, amikor az egér mozog a gomb felett, és kivéve a szubrutinhívás hogy ez az esemény még telt el, és az egér koordinátáit képest a bal felső szélén a gombot. Létrehozása eseménykezelő hozzáfűzik az alábbi kódot. Egy kicsit később, azt fogja magyarázni, hogy mit jelent.

eljárás TForm1.Button1MouseMove (Sender: TObject; Shift: TShiftState; X,
Y: Egész szám);
kezdődik
ha abs (Y - Button1.Height div 2) ha X - Button1.Width div 2 <0 then Button1.Left := Button1.Left + X
mást Button1.Left: = Button1.Left - (Button1.Width - X)
más
ha Y - Button1.Height div 2 <0 then Button1.Top := Button1.Top + Y
mást Button1.Top: = Button1.Top - (Button1.Height - Y)
végén;

Miután hozzáadta ezt a kódot futtatni az alkalmazást, és nézni, ahogy a gomb megszökött az egeret a mező kitöltésével. egér gyakorlatilag lehetetlen helyreállítani a gombot. Most egy kis magyarázatot.

Ez a rutin nagyon hatásos alkalmazni feltételes operátor ha. Elolvashatja róla a szótárban is alkalmazni kell mást. Csak alkalmazni a tulajdonságokat a gombok, azaz Button1.Width meghatározás knopki1 szélességét és Button1.Height - meghatározása a magassága. Div operátor szolgál, hogy osztja. X és Y - a koordinátái az egér át a programnak. abs - kiszámítja a funkció modul

A ciklusok nem fordul elő bonyolult matematikai számításokat, amely első pillantásra meg nagyon ijesztő. De ahhoz, hogy megértsük, mi minden funkció lehet válogatni ki könnyen. Ebben a példában azt kimondottan az olvasó a Tulajdonságok gombra (Button1.Top. Button1.Left. Button1.Height. Button1.Width), hogy az lenne a program sokoldalú. Ehelyett adja meg a pontos értékeket. Úgy néz ki nagyon jó itt össze:

eljárás TForm1.Button1MouseMove (Sender: TObject; Shift: TShiftState; X,
Y: Egész szám);
kezdődik
ha abs (Y - 12) ha X - 37 <0 then Button1.Left := Button1.Left + X
mást Button1.Left: = Button1.Left - (75 - X)
más
ha Y - 12 <0 then Button1.Top := Button1.Top + Y
mást Button1.Top: = Button1.Top - (25 - Y)
végén;

A forráskód a projekt

Kapcsolódó cikkek