Delphi - Form-ok egyszerű megnyitása

forráskód letöltése
Egy-egy programban előfordulhat, hogy jó néhány menüpont nem tesz mást, mint megnyit egy ablakot.

Ilyenkor minden menüponthoz általában ugyanazt a kódot gépeljük be, csak mindig más-más Form-ra hivatkozunk:
Form2.Show;
Ha például minden megnyitott Form-nál ugyanolyan műveleteket is végzünk, akkor még inkább feleslegesnek érezhetjük ugyanazokat a lépéseket ismételgetni, csak más-más Form-ra:
Form2.Show;
Form2.Caption:=TimeToStr(Now);
Mellékelt példából megtudhatjuk, hogy fenti probléma miként egyszerűsíthető le annyira, hogy csupán egyetlen helyen egyszer kelljen megadni, hogy mi történjen egy-egy ablak megnyitásakor, függetlenül attól, hogy alkalmazásunk hány ablakot tartalmaz. Ehhez csupán két teendőnk van: program indulásakor az egyes menüpontok Tag property-ébe el kell tárolni egy a menüpont által megnyitandó Form-ra mutató pointert. Mivel a pointer valójában egy 32 bites szám és a Tag property integer típusa szintén 32 bit, így a kettő értékül adható egymásnak.

Másik lépés az az, hogy miután minden egyes menüponthoz ugyanazt az OnClick eseménykezelő eljárást rendeltük, hogy felhasználjuk a paraméterként kapott menüpont Tag property-t.
Ez a paraméter a Sender. Jelen esetben ez nem más, mint egy TMenuItem típusú objektum, amely ahhoz a menüponthoz tartozik, amelyiket a felhasználó kiválasztott. Ezt felhasználva érjük el a számunkra szükséges Form-ot és ha ez megvan, akkor már tulajdonképpen bármilyen műveletet végrehajthatunk az adott Form-on.