Hogyan kell kezelni egy dinamikusan létrehozott verem túlcsordulási eseményt oroszul

Számos dinamikusan létrehozott képösszetevő létezik, amelyekkel az űrlap az alábbi kóddal mozoghat:

Kérdés: Hogyan változtathatjuk meg a kiválasztott kép helyzetét az eljárás segítségével:







Próbáltam ilyeneket tenni:

De nem működött, hiba: Nem összeférhető típusok: "TObject" és "Class reference"

UPD: Ez a probléma fix, most új keletkezett: az eljárás az utolsó hozzáadott képre vonatkozik. Kérem, mondja meg, hogyan kell alkalmazni az eljárást az Image-re, amelyen a kattintás történt? Próbáltam valamit csinálni a Taggel, de nem történt semmi.

mivel Január 31-én 12:00 órakor

Az eljárás során fel kell vinnie a létrehozott dinamikus objektumot. azaz Image1. a módszer neve alapján ítélve.

Ugyanabban a kódban próbálsz átadni egy osztályt ebben az eljárásban. de nem objektum. Valószínűleg nem érted nagyon világosan az osztály és az objektum közötti különbséget, így hibát vétettél. Egy objektum egy osztály egy példánya, és több objektumot hozhat létre ugyanabban az osztályban.

Ahhoz, hogy a dolgokat rendben tartsam a fejemben, és mindent a polcokra rakjak, azt javaslom, hogy alaposan olvassa el a jegyzetet: Delphi. 18. lecke Osztályok és tárgyak







Ha komponensekről beszélünk, nem pedig absztrakt osztályokra, akkor az őseik a TComponent osztály, amely a TPersistent osztály közvetlen leszármazottja. Ezek a TComponent-eredetű osztályok, amelyek a Delphi komponensei, beleértve azokat is, amelyek az összetevők palettáján szerepelnek.

Ie ez normális osztály. kivéve, hogy a TObject nem örökölte. de a TComponent-től. És ennek a körülménynek köszönhetően nem lehet "dinamikusan létrehozott összetevő", ahogy a kérdésében hangzik. Mindez létrejön egy objektum.

Általánosságban, ahogy írtam, emlékeznem kell az onClick elemre, az FormKeyUp segítségével mozgatjuk.

Az űrlapon állítsa be a KeyPreview = True tulajdonságot. Annak érdekében, hogy a billentyűleütéses események először az űrlapra kerüljenek, majd a kezelt összetevőhöz.

Csatlakoztatjuk a modulokat, ha nincsenek jelen a gombon, a képen és a Generic listán.

Definiálja a TMoveDirection típust a mozgás irányával:

A Control'a mozgatásának folyamata az irányt jelezve

Egy ImageClickEvent esemény, amely egérkattintással végrehajtódik

Algoritmusom elemek létrehozására és építésére. Egyébként img.Picture.Bitmap.LoadFromFile ('ball_blue.bmp'); egy képet jelenít meg a TImage-ben. Nincs teher.

FormKeyUp esemény. amely bármelyik kulcsra kattintva működik (Ne felejtsd el a formanyomtatvány KeyPreview = True értékét).

Készítsen és elpusztítsa a listát a létrehozott objektumokkal.

A kód nem mintha semmi, a feladat egyszerű végrehajtása. Hozzon létre külön osztályokat, ne használjon globális változókat.
Eljön az idő, és megjegyzést teszek erről a témáról a blogomban




Kapcsolódó cikkek