AGK Tier1 alapok 12. rész – szöveg bevitel

Az előző leckében a külső forrásfájlokról beszéltünk, ebben a leckében pedig a szöveg bevitelről fogunk beszélni.

Az eddigi leckékben többnyire csak előre megadott információkkal dolgoztunk ám módunkban áll a programunkba használat közben bevinni információt amit a programunk felhasználhat. Ennek vagyunk tanúi amikor például egy játékban megadjuk a nevünket.

Az AGK-ben alapvetően 2 módon vihetünk be információt, szöveg bevitelt használva és “szerkesztő dobozt”. A szöveg bevitel akkor lehet hasznos amikor a programunk szöveg alapú, nincs grafikus kezelő felület vagy teljesen mindegy hol visszük be az információt, a “doboz” pedig akkor hasznos ha a programunk rendelkezik grafikus kezelő felülettel és egy adott helyen kívánjuk az információt bevinni. Ebben a leckében a szöveg bevitelt fogom bemutatni és egy másik leckében fogunk foglalkozni a dobozzal.

A StartTextInput() utasítással közöljük a programunkkal hogy szeretnénk szöveget bevinni. Ha lefuttatjuk, a programunk akkor megnyit számunkra egy kis szöveg mezőt a képernyő közepén amibe gépelhetünk és ha lenyomjuk az ENTER billentyűt akkor azt bezárjuk. Most lássunk egy példát arra hogyan is használhatjuk fel a bevitt információt.

Ahogy láthatjuk először is létrehoztunk egy string változót informacio, hogy ebben tároljuk az információt amit beviszünk. Majd a StartTextInput() utasítással elindítjuk az szöveg bevitelt. A do-loop ciklusban pedig leellenőrizzük hogy a bevitel véget ért-e vagy még tart a GetTextInputState() utasírással. Ha az értéke 0 akkor az azt jelenti hogy a bevitel még tart és ekkor a korábban létrehozott változónkba eltároljuk az addig bevitt szöveget a GetTextInput() utasítással. Ha viszont az információ bevitelnek vége vagyis az értéke 1, akkor kiíratjuk a képernyőre a bevitt információt a változót felhasználva amiben eltároltuk az addig bevitt szöveget.

Természetesen előfordulhat hogy szeretnénk szabályozni hogy ne azonnal a programunk elején kezdjük a szöveg bevitelt, hanem mondjuk később amikor lenyomunk egy billentyűt.

Ahogy láthatjuk, itt először is behívtam a “keys.agc” fájlt amit a korábbi leckében készítettünk és a programunk lényegében annyiban változott hogy most már akkor indítjuk el a szöveg bevitelt ha a szóköz (SPACE) billentyűt felengedtük, ezt a GetRawKeyReleased() utasítással ellenőrizzük. Majd ha felengedtük a billentyűt azt ellenőrizzük hogy a szöveg bevitel aktív-e. Ha nem, (az értéke 1) akkor aktiváljuk.

Természetesen akár le is állíthatjuk manuálisan a szöveg bevitelt a StopTextInput() utasítással amikor csak szeretnénk, nem kell megvárni hogy a felhasználó az ENTER billentyűt lenyomja és korlátozhatjuk is a bevihető karakterek számát a SetTextInputMaxChars() utasítással.

Feltűnhet hogy az AGK-ben az utasítások értelmes angol szavak, ezért a tanulásunkat jelentősen megkönnyítheti ha valamennyit tudunk angolul mivel nagyon sok utasítás magától értetődő hogy mire való és a dokumentációban pedig leírják hogyan is működik.

A következő leckében hogy hasznát vegyük mind annak amit eddig tanultunk, írni fogunk egy egyszerű kis programot.

Ajánlott: