Hogyan írjunk interaktív segédanyagokat?

Az itt közölt tömör ismertetéstől és példától azt reméljük, hogy a WfW-t és a BASIC nyelv alapjait ismerőknek kedvet csinálnak interaktív kémiai segédanyagok készítéséhez. A makrónyelv angol nyelvű leírása megtalálható a WfW Súgójában, kimerítően részletes magyar tankönyv pedig kapható a számítástechnikai piacon.

A WfW 2.0, 6.0 és 7.0 makrónyelve a "WORDBASIC" nyelv különböző változatainak felel meg. Az Office 97 csomagban szereplő, 32 bites Word makrónyelve már a Microsoft Visual Basic egy változata, de képes lefordítani a korábbi nyelven írt "makrókat" azaz a Word-ben írt BASIC-jellegű programokat. A következőkben a WfW 6.0 makrónyelvével foglalkozunk, mivel úgy hisszük, jelenleg még ez a legjobban hozzáférhető változat hazai körülmények között.

A WORDBASIC felfogható úgy, mint egy szabályos BASIC nyelv be- és kiviteli, fájlkezelő, elágazásos és ciklusutasításokkal valamint szubrutin-jellegű szervezési móddal. A változók lehetnek skalárisak és tömbök, numerikusak és szövegek (sztringek). A beépített függvények jórészt szövegfeldolgozásra alkalmasak, a numerikus függvények választéka kicsiny. Ugyanakkor a Word szinte minden funkciójának megfelel egy-egy BASIC-szerű utasítás és/vagy függvény, s az utasítások segítségével megírt "programok" futtatásakor a WfW bonyolult feladatokat képes végrehajtani. Szerencsére csupán a WORDBASIC standard BASIC-részét kell ismernünk, ez pedig számos felhasználónak—korábbi BASIC tanulmányai és a WORDBASIC HELP alapján—semmi gondot nem okoz. A bonyolultnak tűnő szövegkezelő utasítások és függvények megjegyzését a legtöbb esetben elkerülhetjük úgy, hogy nem magunk írjuk be a programot a WfW megfelelő helyén megjelenő szerkesztőbe, hanem a kívánt tevékenységsort végeztetjük el és jegyeztetjük meg a WfW-vel. Ennek során a szövegszerkesztő WORDBASIC miniprogramot, "makrót" hoz létre, amelynek szövegében benne lesznek a kívánt utasítások tetszés szerint módosítható formában. A következőkben egy példát mutatunk be.

Írjunk makrót, amely a képernyőn egy kérdésre három válaszlehetőséget kínál fel. Ha valamelyikre rákattintunk, a rendszer adja meg, jól válaszoltunk-e.

A megoldáshoz felhasználhatjuk a "MakróGomb" mezőt, amely a BESZÚRÁS/MEZŐ menüpontban található. Ha a dokumentumba illesztett "Makrógomb" mező szöveges részére rákattintunk, akkor a mezőhöz rendelt makró lefut.

Az 1. ábrán bemutatjuk, mit kívánunk létrehozni a képernyőn.

1. ábra

A megfelelő makrók a következők lehetnek:

Sub MAIN
REM makrokerdes
rem törlés
EditSelectAll
EditClear
rem kérdés beírása
Insert "Mi a kálium-per
manganát képlete?"
InsertPara
InsertPara
rem kérdés vége
rem mezők+válaszok bevitele
InsertField .Field = "MAKRÓGOMB makrov1 A."
Insert " KMnO"
Subscript
Insert "4"
Subscript
InsertPara
InsertField .Field = "MAKRÓGOMB makrov2 B."
Insert " KMnO"
Subscript
Insert "3"
Subscript
InsertPara
InsertField .Field = "MAKRÓGOMB makrov3 C."
rem Insert " KMnO"
Subscript
Insert "6"
Subscript
InsertPara
rem mezők+válaszok vége
End Sub


Sub MAIN
rem makrov1
rem az A makrógombra kétszer rákattintva ide ugrik
a$ = "1"
rem hívja a választ tartalmazó makrót
Call makrovalasz.main(a$)
End Sub


Sub MAIN
rem a B makrógombra kétszer rákattintva ide ugrik
rem makrov2
a$ = "2"
rem hívja a választ tartalmazó makrót
Call makrovalasz.main(a$)
End Sub

Sub MAIN
rem makrov3
rem a C makrógombra kétszer rákattintva ide ugrik
a$ = "3"
rem hívja a választ tartalmazó makrót
Call makrovalasz.main(a$)
End Sub

Sub MAIN(a$)
rem makrovalasz
rem helyes válasz az A. makrógomb–1. lehetőség
h$ = "1"
rem a$ értéke a makrov1-2-3 makrókból érkezik, attól függően, hogy A, B vagy C volt megnyomva
rem msgbox: üzenetdoboz
If a$ = h$ Then MsgBox "Jól válaszolt." : Goto 100
MsgBox "A helyes valasz: A"
100 Stop - 1
End Sub

Tartalomjegyzék