VFP Form programozás Form szerkesztő elemei vezérlő elemek objektum és osztály objektum hierarchia esemény orientált programozás metódusok adatkezelés nyomógomb és szövegdoboz osztálykönyvtár osztály és objektum programozása
Form tervezése űrlap szerepe adattáblák vezérlő elemek adatkapcsolat adatkezelés elemek működése űrlap szintű működés szabályok elrendezés megjelenés
Form szerkesztő elemei Form alap objektum vezérlő elem tulajdonságok metódusok színpaletta elhelyezés
többsoros mező Vezérlő elemek egysoros mező nyomógomb felirat gombcsoport lenyíló gyári elemkészlet vagy saját készlet választó lista jelölő doboz csúszka rács időmérő kép az elem lehet elemi vagy konténer lapkeret OLE bound OLE OLE Control és OLE Bound Control (memo) keret vonal ált. konténer hiperlink szeparátor
Objektum mechanizmus hatása kezelő eljárások struktúra osztály öröklés elrejtés (védelem) objektum
Konténer osztályok Elemi osztályok Container Custom Column CommandGroup DataEnvironment Form FormSet Grid OptionGroup Page PageFrame Toolbar Project CheckBox Relation CommandButton Label ComboBox Separator CommandGroup Session EditBox Shape Header Spine ReportListener TextBox Image Timer ListBox Line OLE Bound OLE Container OptionButton
Objektum tartalmazási hierarchia _SCREEN objektum fs1 FORMSET objektum f1 FORM obj. FORM TOOLBAR pf1 PAGEFRAME obj. p1 PAGE obj. COMMANDB. LISTBOX g1 GRID obj. c1 COLUMN obj. t1 TEXTBOX obj. h1 HEADER obj.
Objektum hivatkozás abszolút elérés: _SCREEN.fs1.f1.pf1.p1.g1.c1.t1 THISFORMSET.f1.pf1.p1.g1.c1.t1 THISFORM.pf1.p1.g1.c1.t1 relatív THIS THIS.c1.t1 THIS.PARENT.g1.c1.t1
Objektum tulajdonságok TEXTBOX - megjelenés - adatkezelés - formátum öröklés osztályfüggő segítő eszközök az értékadáshoz programszint: THIS.CAPTION =‘LE’
Esemény orientált programozás válasz Az esemény-válasz kapcsolat programban kódolt Metódusok: az osztályhoz kapcsolt eljárások, függvények Meghívás: - esemény bekövetkezésekor (esemény kezelő metódus) - közvetlen hívás THISFORM.pf1.p1.nyg.CLICK()
Események, metódusok CLICK GETFOCUS LOSTFOCUS WHEN VALID INIT LOAD UNLOAD KEYPRESS REFRESH SETFOCUS INTERACTIVECHANGE MOUSEDOWN
Gyakoribb elemek Kilépés Button.CLICK: THISFORM.RELEASE() Induló érték beállítás: Form.INIT: THISFORM.pf1,p1.t1.VALUE = ‘ ss‘ Értékellenőrzés Text.VALID: IF THIS.VALUE < 0 RETURN .F. …
Adatkezelés Célszerű a kezelt táblákat a FORM.DATAENVIRONMENT környezetben kezelni: - automatikus nyitás - automatikus lezárás - automatikus beépítés Direkt kezelés: FORM.LOAD: - nyitás (USE) FORM.UNLOAD - lezárás
Adatkezelés Kapcsolódás a mezőhöz direkt: text.CONTROLSOURCE = ‘tábla.mező’ közvetett változón keresztül: PUBLIC mm text.CONTROLSOURCE = ‘mm’ SELECT tábla LOCATE SCATTER NAME mm text.REFRESH() GATHER NAME mm
Saját osztályok létrehozatala gyári ősosztályra épül egyedi tulajdonságok és egyedi metódusok felhasználható a FORM-oknál
Saját osztályok létrehozatala programozása: DEFINE CLASS cc AS ősosztály [PROTECTED | HIDDEN] tulajdonság ADD OBJECT obj AS oszt WITH param [PROTECTED | HIDDEN] FUNCTION ff … ENDFUNC ENDDEFINE oo = CREATEOBJECT(‘cc’)