Új project létrehozása és a form tulajdonságai, eseményei

Hozzunk létre egy új alkalmazást a már betöltött Delphi fejlesztői eszközünkkel. Kattintsunk a File menü New/Application pontjára. Ekkor létrejön egy üres alkalmazás egyetlen formmal (ablakkal). A képernyő bal felső sarkában látható az Object Treeview panel. Ezen láthatjuk a formunkat (míg nem nevezzük el, addig Form1 lesz a neve), illetve a formon lévő komponenseinket is, már ha van rajta valami. De mivel most nyitottunk új alkalmazást, ezért csak a Form1 név található a panelen.

A képernyő bal alsó sarkában találjuk az Object Inspector panelünket. Ez nagyon fontos, ugyanis itt állíthatjuk be a formunk és a formon elhelyezett összes komponens tulajdonságát, itt vehetünk fel a formhoz vagy a komponensekhez eseményeket. Az utóbbiról majd később teszek említést.

Az Object Inspector panelen láthatunk még két fület, az egyik a Properties (tulajdonságok), a másik az Events (események) fül. Az alábbiakban ismertetem az újonnan létrehozott alkalmazásunk fontosabb tulajdonságait. (A Form tulajdonságai Delphi verziószámaitól egy-két esetben eltérőek lehetnek, s ezért ebben a leírásban csak a legfontosabbakat mutatom be.)

Align: megadhatjuk, hogy a formunk hová igazodjon; balra, jobbra, teljes képernyőre, alulra, felülre, stb. Használatáról később.

Anchors: megadhatjuk, hogy a formunk a képernyő mely részéhez igazodjon. Ez majd a komponensek beállításánál lesz érdekes, ezért használatáról később írok.

BorderIcons: megadhatjuk, hogy fordítás után formunk jobb felső sarkában milyen gombok legyenek láthatóak.

  • biSystemMenu: false-ra való állításával eltűnnek a form felső sarkából a gombok
  • biMinimize: false-ra való állításával eltűnik a minimalizáló gomb a form felső sarkából
  • biMaximize: false-re való állításával eltűnik a maximalizáló gomb a form felső sarkából

BorderStyle: beállíthatjuk eme tulajdonság segítségével, hogy az ablakunk fordítás után hogyan is nézzen ki. Ennek nem írom le a lehetőségeket, akit érdekel, próbálja ki. Megéri!

Caption: az ablakunk neve, amit a form bal felső sarkában láthatunk

ClientHeight: megadhatjuk a kliens form magasságát

ClientWidth: megadhatjuk a kliens form szélességét

Color:

megadhatjuk a form színét

Cursor: megadhatjuk, hogy formunkon milyen legyen az egérmaszk fordítás után

Enabled: ha ezt az opciót false-ra állítjuk, akkor a formon semmit sem tudunk csinálni, még bezárni sem! Természetesen ALT+F4 billentyű kombinációval be tudjuk zárni az ablakot. Ezért ezt az opciót csak szándékosan, programból állítsuk át, ha ez szükséges. Ennek a tulajdonságnak majd a komponenseknél lesz nagy szerepe.

Font: megadható, hogy formunkon mi legyen az alapértelmezett font.

FormStyle: ezt szintén részletesen megadom, mert ez egy fontos tulajdonság!

  • fsNormal: ez az alapértelmezett
  • fsMDIForm: ha ebbe a formunkba szeretnénk még más formokat is ágyazni, akkor ezt a form tulajdonságot kell beállítanunk. Használatáról majd később.
  • fsMDIChild: ha van már MDIFormunk, akkor ez a form fog bedokkolódni az előbb említett formba. Használatáról majd később.
  • fsStayOnTop: ha azt akarjuk, hogy a formunk mindig felül legyen, bármi is történik az operációs rendszerünkben, akkor ezt az opciót kell megadnunk.

MDI (Multiple Document Interface) alkalmazás: egy alkalmazás MDI típusú, ha felügyelete alatt több ablakban jeleníthetünk meg adatokat, grafikát, stb, és azokkal párhuzamosan dolgozhatunk.

SDI (Single Document Interface) alkalmazás: SDI-nek nevezünk minden egyéb (nem MDI) alkalmazást. Ilyen például a Delphi is; van egy főablaka, objetum-felügyelő, kódszerkesztő, formtervező ablakai is vannak, de mind külön-külön ablakban láthatóak, nincs közöttük szülő-gyermek kapcsolat.

Height: A form magasságát állíthatjuk át

HelpContext / HelpFile / HelpKeyword / Help Type: ezekre a tulajdonságokra akkor van szükségünk, hogyha van egy help fájlunk, s akarjuk használni ezt az alkalmazásunkban. Használatáról később.

Hint: ha az egeret a form felé visszük, s ott hagyjuk pár másodpercre, az itt beírt szöveg fog megjelenni. Form esetében ezt nem szükséges beállítani, inkább a komponenseknél lesz szerepe. A hint megjelenésének ideje is átállítható futásidőben, de erről majd később.

Keypreview: fontos tulajdonság! Ha a formhoz hozzárendelünk egy olyan eseményt, hogy pl: CTRL+K billentyű kombinációra csinálja azt, hogy…, akkor ha ez a kapcsoló nincs bekapcsolva, a CTRL+K billentyű kombinációra semmi sem fog történni! Ezért ezt állítsuk be ebben az esetben true-ra.

Left: a képernyő bal sarkához képest a form távolságát adja meg pixelben

Menu: ha van a formunkon egy menü komponens elhelyezve, akkor megmutatja annak nevét. Illetve ha többet helyezünk el, akkor ki lehet választani, hogy melyiket akarjuk használni a formon alapértelmezetten. De ennek nem sok értelme van. Általában 1 menü komponenst, s esetleg egy vagy több popupmenu komponenst szoktunk elhelyezni a formon. Ezek használatáról később.

Name: a form neve. Célszerű beállítani, s nem otthagyni azt, amit a Delphi megad, mert egy projekt fejlesztésekor ezek a nevek beszédesek lehetnek. (Pl.: frm_main, frm_search, stb ).

Popupmenu: ezt a menüt az egér jobb gombjával való kattintáskor tudjuk előcsalogatni. Használatát majd később mutatom be.

Position: megadhatjuk, hogy futásidőben formunk hol helyezkedjen el. Nem írom le szintén az összes beállítást, érdemes kipróbálni.

Tag: a legtöbb komponens rendelkezik egy Tag tulajdonsággal. Ezt a rendszer nem használja. Kizárólag csak a felhasználók számára vezették be, hogy megkönnyítse a fejlesztést. Használatáról később!

Top: megadja a form helyzetét a képernyő felső részéhez viszonyítva

Visible: láthatóság, azaz ha értéke true, akkor futásidőben látszik a form, ha false, akkor nem. Ennek a tulajdonságnak a komponenseknél nagyobb jelentősége van. Formot nem szoktunk úgy beállítani semmilyen körülmények közt, hogy ne látszódjon, ezért kérek mindenkit, tartózkodjon ezen megoldástól!

Widht: a form szélessége

WindowState: alapértelmezetten wsNormal a tulajdonsága a formnak. Be lehet állítani, hogy futásidőben a form legyen akkora, mint a képernyő (wsMaximized), vagy kicsinyített (wsMinimized). Használatáról majd később beszélünk még.

Bemutattam a fontosabb tulajdonságait a formnak. Fontos megjegyeznem, hogy a form és általában az összes komponens legtöbb tulajdonságát futásidőben (kódból) át lehet állítani!

Most nézzük meg az alábbiakban form fontosabb eseményeit is!

onActivate: amikor épp a programunkkal dolgozunk (amikor a form aktív), tehát a tálcán is ki van jelölve az alkalmazás, az itt leírt kódsorok hajtódnak végre. A form kreálódása után végrehajtódik az ebben az eseményben leírt kódsor.

onCanResize: ebben az eseményben leírt sorok akkor hatódnak végre, ha formunk tudott nagyítódni vagy kicsinyítődni

onClick: ebben az eseményben leírt sorok akkor hajtódnak végre, ha a formunkra kattintottunk

onClose: ez az esemény akkor jön létre, ha bezárjuk a formunkat

onCloseQuery: ez az esemény akkor jön létre, ha bezárjuk a formunkat. De itt még megállítható a bezárás!

onCreate: form betöltődésekor ebben az eseményben tárolt sorok végrehajtódnak

onDblClick: ha formunkra duplán kattintottunk, ez az esemény fog végrehajtódni

onDeactivate: ha formunk már nem aktív, az eseményben lévő kódok végrehajtódnak

onDestroy: az form megszűntetésekor következik be

onKeyDown: ha lenyomtunk formunkon egy gombot, akkor az esemény bekövetkezik

onKeyPress: ha megnyomtunk formunkon egy gombot, akkor az esemény bekövetkezik

onKeyUp: ha felengedtük formunkon egy lenyomott gombot, az esemény végrehajtódik

onMouseDown: ha lenyomtuk az egér gombját a formunkon, akkor az esemény végrehajtódik

onMouseMove: ha az egerünket elmozdítjuk valamely irányba formunkon, akkor az esemény végrehatódik

onMouseUp: ha az egerünk gombját felengedjük formunkon, az esemény végrehatódik

onPaint:ez az esemény a form újrarajzolásakor következik be

onResize: az esemény bekövetkezik, ha formunkat nagyítjuk vagy kicsinyítjük

onShow: az esemény bekövetkezik, ha a form már látható, azaz átesett már az onCreate és az onActivate eseményen is

A következő fejezetben bemutatom a Delphi Standard komponenscsaládját. Ott már nem írom le az egyes komponensek tulajdonságait vagy eseményeit, mert lényegében megegyeznek a fent tárgyaltakkal. Csak a fontosabb tulajdonságokat fogom kiemelni.

Könyvajánló

Programozzunk Turbo Delphi Rendszerben