Néhány alapvető DataFlex webalkalmazás-fejlesztési technikát fogunk bemutatni a jól ismert “Hello, World” program egy variációján keresztül, amelyet sok programozási nyelv tanításakor első programként használnak.
A létrehozandó webes nézet nagyon egyszerű lesz, egy űrlapot és egy gombot tartalmaz. A felhasználó beírja a nevét az űrlapba, és rákattint a gombra. A név ezután hozzá lesz adva a “Hello, ” kifejezéshez, így például a “Hello, John” eredményt kapjuk. Ez az eredmény megjelenik egy üzenőmezőben.
Webes nézet
A webes nézetek (cWebView osztály) a DataFlexben a webes alkalmazások fő vizuális tárolói. Bővebben a cWebView osztály dokumentációjában olvashat róluk.
1. Kattintson a Studio eszköztárának Create New gombjára. Kattintson a Create New… párbeszédpanel Web Object fülére. Kattintson duplán a Web View ikonra.
2. Megnyílik az “Új webes nézet létrehozása” párbeszédpanel. Adja meg az oHelloWorld nevet az objektum neveként. Vegye észre, hogy a fájlnév automatikusan HelloWorld.wo-ra változik az objektum nevének beírása közben. Fogadja el az alapértelmezett könyvtár elérési útvonalát (a QuickStart munkaterület AppSrc mappája). Kattintson az Ok gombra.
Mostantól az új webes nézet forráskódja látható a Stúdióban.

3. A Workspace Explorerben a WebApp.src-t kell látnia a Current Project (Aktuális projekt) néven. Kattintson a +-ra a fa nézetben a WebApp.src bővítéséhez, majd kattintson a +-ra a Web nézetek bővítéséhez. Láthatja, hogy a HelloWorld.wo hozzá lett adva a WebApp.src projekthez.
Ha a +-ra kattintva kibővíti a Webes modális párbeszédpaneleket, a Webböngésző objektumokat és az Egyéb fájlokat, akkor láthatja az összes többi fájlt, amelyek jelenleg a projekt részét képezik.

4. Most megnyithatja a WebApp Designer-t, vagy a View menüből, majd a WebApp Designer menüpontból, vagy az F7 billentyű lenyomásával.

WebApp Designer
A WebApp Designer a Studio dokkoló eszközpanelként van megvalósítva. Kezdetben a Studio aljához van dokkolva, de a panelt húzva és átméretezve szabadon lebegővé teheti. Ha a számítógépen két monitor van, akkor a tervezőt a második monitorra húzhatja.
Ahogy szerkeszti a webes nézet, a webes párbeszédpanel vagy a WebApp.src forráskódját, a Tervező dinamikusan frissül, hogy tükrözze a módosításokat. Az objektumtulajdonságok szerkesztése a Tulajdonságok panelen szintén megjelenik a Tervezőben.
A WebApp Designerről bővebben itt olvashat.
5. A webes nézet alapértelmezés szerint már tartalmaz egy űrlap (cWebForm osztály) objektumot, így a tervezés befejezéséhez még hozzá kell adnia egy gombot.
Kattintson a Studio eszköztárának Class Palette gombjára.

Ezzel megjelenik a Studio osztálypalettája. Kattintson a + gombra a Web Controls csoporton a kibontáshoz, ha még nincs kibontva. Ekkor megjelenik az összes elérhető webes vezérlőelem.
Osztálypaletta

A Class Palette egy dokkoló ablak, amely a Studio-ban az aktuális munkaterületre vonatkozóan elérhető vezérlőelemeket listázza. Az egyes csoportokba tartozó vezérlőelemek felhasználása és funkciói alapján különböző vezérlőelem-csoportokra van felosztva.
Mivel Ön jelenleg egy webes projekten dolgozik, a Class Palette alapértelmezés szerint csak a webes alkalmazásokban használható vezérlőelemeket mutatja.
A Class Palette teljesen testreszabható. Erről bővebben a Studio könyv Class Palette témakörében olvashat.
6. Húzza a cWebButton vezérlőelemet a Class Palette (osztálypaletta) Web Controls (webes vezérlők) csoportjából a WebApp Designer (webalkalmazás tervező) felületére, a meglévő űrlapobjektum alá.
Ahhoz, hogy a gomb a meglévő űrlapobjektum alá kerüljön, húzza a gombot az űrlapobjektum mellett addig a pontig, ahol egy függőleges sáv jelenik meg, amely egy helytartó, amely az új objektum helyét jelzi.

Fő fogadás
Kicsit nehézkes lehet a vezérlőelemek megfelelő elhelyezése, amikor a WebApp Designerbe húzza őket. Ha a húzás rosszul sikerül, bármikor megnyomhatja az eszköztáron a visszavonás gombot (vagy a Ctrl+Z billentyűkombinációt), és újra megpróbálhatja. Mindenképpen húzza a vezérlőelemet, és tartsa lenyomva a jobb egérgombot, hogy lássa, hogyan vezetik a Designer helyőrzői. Csak akkor engedje el az egérgombot, ha az objektum pontosan ott van, ahol szeretné. — Az objektumot újra felveheti, és áthelyezheti egy másik helyre.
Tipp
A WebApp Designer a DataFlex Studio számos dokkolópaneljének egyike. Ezeket tetszés szerint rendezheti el. A fenti képernyőképen a WebApp Designer-t lebegő ablaktáblaként jelenítettem meg. Olvasson többet a Studio dokkolópaneljeinek használatáról.
7. Ha jól csinálja, ahogy az alábbi képen látható, akkor a gomb a panel következő sorába tekeredik, és az űrlap alatt jelenik meg:

Tipp:
A fenti képernyőképen a gomb kék szegélye átfedi a többi vezérlőelemet. Ez egy másik WebApp Designer vizuális segédeszköz, amely segíti az aktuálisan kiválasztott vezérlőelemmel (a gombbal) való munkát. Ha egy másik vezérlőelemet választ ki, például a szülő nézetobjektumot, a kék keret eltűnik a gombról, és átvált az újonnan kiválasztott objektumra.
8. Válassza ki az oForm objektumot a WebApp Designerben, és a Tulajdonságok ablakban módosítsa az Objektum nevét oNameForm-ra (az objektum neve a Tulajdonságok ablak tetején található). Állítsa a psLabel tulajdonságot Name: értékre, a psPlaceholder tulajdonságot pedig Type your name here értékre.
9. Válassza ki az oWebButton1 objektumot a WebApp Designerben, módosítsa az Object nevet oGoButton-ra, és állítsa a psCaption tulajdonságot Go-ra.
10. Válassza ki az oHelloWorld objektumot a WebApp Designerben, módosítsa a psCaption tulajdonságot Hello, World! értékre.
11. Ezután az oWebButton1 objektum meglévő OnClick eljárásához adunk hozzá némi kódot.
a. Az első kódsor a következő:
String sName sResult
CodeSense
Ahogy elkezdi a kód beírását, néha észreveheti, hogy felugrik egy lista, amely a lehetséges opciókat mutatja be. A legtöbb esetben a CodeSense ezen félautomata listafunkciója tudja, hogy mikor kell megjelennie, és megfelelő kontextusú választási lehetőségeket mutat be. Ha manuálisan szeretné előhívni ezt a listát, nyomja le a Ctrl+Space billentyűkombinációt bármelyik sorban vagy szó beírása közben.
A CodeSense a Studio olyan funkcióinak összessége, amelyek intelligens módon segítik Önt a kódírás során, és kontextusfüggő lehetőségek és információk listáit kínálják. A CodeSense használata drámaian növeli a termelékenységet, közvetlenül akkor ad kontextusérzékeny információkat, amikor szükséged van rájuk, miközben kódot gépelsz a szerkesztőben, így nem kell elhagynod a szerkesztőt, hogy a dokumentációban hivatkozásokat keress. És még arra is használható, hogy befejezze a gépelést Ön helyett, minimalizálva a gépelési hibákat stb.
A CodeSense használatáról itt tudhat meg többet.
Ez a kódsor két helyi sztringváltozót deklarál sName és sResult néven.
Változó hatókör
A helyi változók hatókörét arra a metódusra (eljárásra vagy függvényre) korlátozzuk, amelyben deklaráltuk őket. Ezt a változót “használhatja”, ami azt jelenti, hogy csak az aktuális metódusban, jelen esetben az OnClick eljárásban rendelhet hozzá értéket, és csak akkor férhet hozzá a meglévő értékéhez, ha az aktuális metódusban van. Ha a változókra azon a hatókörön kívül próbálunk hivatkozni, amelyben deklaráltuk őket, az fordítói hibát eredményez.
Változók nevei
Az objektumok neveihez hasonlóan a változóknak is hasznos értelmes neveket adni. Az x vagy y nevek közel sem olyan értelmesek, mint az sName. Egy összetettebb, több tucat változót tartalmazó módszerben, ha könnyen azonosítani tudjuk egy változó nevének jelentését, hatékonyabb programozóvá válunk.
A string változókhoz az s előtagot javasoljuk használni. Az ilyen előtagok szintén segítenek a változónevek jelentésének azonosításában. Ha ragaszkodik ehhez az elnevezési konvencióhoz, soha nem fogja összetéveszteni a karakterláncot tartalmazó változót a számot tartalmazó változóval. A DataFlex elnevezési konvenciókról bővebben a Nyelvi útmutatóban olvashat.
b. A következő kódsor a következő:
WebGet psValue of oNameForm to sName
Ez a kódsor az oNameForm objektum psValue webes tulajdonságának aktuális értékét az sName helyi stringváltozóba kéri le.
c. A következő kódsor a következő
Move (“Hello, ” + sName) to sResult
Ez a kódsor a “Hello, ” és az sName stringváltozók tartalmát kapcsolja össze, és ezt az értéket az sResult stringváltozóba mozgatja. Tehát, ha például az sName tartalmazza a “John” szót, akkor ez a “Hello, John” átkerül az sResult változóba.
d. A következő kódsor a következő:
Send ShowInfoBox sResult
Ez a kódsor egy olyan üzenőmezőt hív meg, amely megjeleníti az sResult string változó tartalmát.
12. A kész kódnak így kell kinéznie:

13. Most pedig teszteljük az elkészült webes nézetet.
Kattintsunk a Studio eszköztárának Futtatás gombjára. A Studio lefordítja, majd futtatja a projektet.
Az alkalmazás futtatásakor a böngészőnek meg kell jelenítenie a http://localhost/QuickStart/Index.html oldalt.
Kattintsunk a Views menüre, és vegyük észre, hogy a HelloWorld most már itt szerepel.

14. Ez azért van így, mert a nézet neve a Web nézet sablon futtatásakor került be a fő alkalmazásba, mielőtt a nézet psCaptionját Hello, World-re módosította volna.
Megnyithatja a WebApp.src állományt, megkeresheti a megfelelő menüobjektumot (az Object oHelloWorldMenuItem1 egy cWebMenuItemLoadView), és a psCaptiont Hello, World-re módosíthatja, hogy ezt kijavítsa.
Egy alternatív megoldás, mivel ebben az esetben csak egyetlen nézet van a programunkban, plusz mivel egy tesztprogramban valószínűleg nem érdekel minket a menüpontok konkrét sorrendje, az, hogy egyszerűen eltávolítjuk a webes nézetet a programból, majd visszaadjuk. Ezáltal a nézet aktuális psCaption-ját vesszük, és azt használjuk a menüpont felirataként.
15. A Workspace Explorerben kattintson a jobb gombbal a HelloWorld.wo fájlra, majd válassza a kontextusmenüből a Remove Component <HelloWorld.wo> parancsot.

Ez eltávolítja a webes nézetet a projektből. Most pedig adjuk vissza:
16. Kattintsunk a jobb gombbal a HelloWorld.wo kódszerkesztőjének bármely fehér mezőjére, és válasszuk a kontextusmenüből a Add Component to Project <WebApp.src> parancsot.

17. Kattintsunk a Studio eszköztárának Run gombjára. A Studio lefordítja, majd futtatja a projektet.
Amikor az alkalmazás fut, a böngészőnek meg kell jelenítenie a http://localhost/QuickStart/Index.html oldalt.
Kattintson a Nézetek menüre, és vegye észre, hogy a nézet menüpontja most helyesen Hello, World.

18. Kattintson a Hello World-re a nézet megnyitásához.

19. Írja be a nevét a Név feliratú űrlapba (a Type your name here helyett írja be a nevét), majd kattintson a Go gombra.
A felugró üzenőmezőben a “Hello, {Az Ön neve}” felirat fog megjelenni.
Az eredmény így fog kinézni:

Az alkalmazás bezárásához zárja be a böngésző lapját. Térjen vissza a stúdióba, és kattintson a stúdióban a hibakeresés leállítása gombra a hibakeresés leállításához.