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.

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.

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)
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)
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