Szabályozó műveletek
Previous Topic  Next Topic 

Conditional

If/Ha

Cél:

A szkript végrehajtását egy összehasonlítás eredménye alapján folytatja. Ha az állítás igaz, akkor az utasítássorozatot folytatja az EndIf, illetve az Else műveletig. Ha az állítás hamis, akkor az utasítássorozatot az Else (nem kötelező, opcionális), illetve az EndIf művelet utáni sorral folytatja.

Kategória:

Szabályozó

Szintaxis:

If "első állítás" "operátor" "második állítás"

első állítás

az első összehasonlítandó elem, ami lehet szám, szöveg, matematikai kifejezés, változó stb.

operátor

Egy a következők közül:

=

egyenlő

<

kisebb

>

nagyobb

<>

nem egyenlő

<=

kisebb vagy egyenlő

>=

nagyobb vagy egyenlő.

Második állítás

a második összehasonlítandó elem, ami lehet szám, szöveg, matematikai kifejezés, változó stb.

Példa:

A következő példában egy nyomógombot úgy állítunk be, hogyha a szövegmezőbe beírunk egy nevet, akkor a következő oldalra ugorhatunk, ellenkező esetben egy bip hangot és egy hibaüzenetet kapunk.

If "[Név]" "<>" ""

       GotoNextPage

Else

       SoundBuzzer

       AlertBox "Hiányzik a név!" "Adja meg a nevét!"

EndIf


Ezt a funkciót használhatjuk a helyes jelszó ellenőrzéséhez is.

If "[Jelszó]" "=" "ST0146"

       GotoNextPage

Else

       SoundBuzzer

       AlertBox "Hibás jelszó!" "Adja meg a helyes jelszót!"

EndIf


IfEx/Ha kifejezés

Cél:

A szkript végrehajtását egy komplex kifejezés összehasonlításának eredménye alapján folytatja. Ez egy fejlettebb változata az If műveletnek. Ha az állítás igaz, akkor az utasítássorozatot folytatja az EndIf, illetve az Else műveletig. Ha az állítás hamis, akkor az utasítássorozatot az Else (nem kötelező, opcionális), illetve az EndIf művelet utáni sorral folytatja.

Kategória:

Szabályozó

Szintaxis:

IfEx"kifejezés"

kifejezés

egy egyszerű kifejezés, amelyik három elemet tartalmaz:


első_tétel operátor második_tétel


két tételt összehasonlít egy operátor segítségével, amelyiknek a két tétel között kell lennie. A két tétel lehet szöveg, szám, változó, matematikai művelet stb. Az operátor a következők közül az egyiknek kell lennie:


=

az első tétel egyenlő a másodikkal

<

az első tétel kisebb, mint a második

>

az első tétel nagyobb, mint a második

<>

az első tétel nem egyenlő a másodikkal

<=

az első tétel kisebb vagy egyenlő a másodiknál

>=

az első tétel nagyobb vagy egyenlő a másodikkal


Példa:

A következő példában [Név] változót hasonlítjuk össze "János"-sal:

IfEx "[Név] = János"


Ha az összehasonlítás szóközt tartalmaz, akkor idézőjelek közé kell rakni:

IfEx "[Név] = [#34] Nagy János[#34]"


Összetettebb állításokat is készíthetünk, ha az egyes kifejezéseket az AND (és) vagy az OR (vagy) logikai műveletekkel kapcsoljuk össze. Például megvizsgáljuk, hogy a  [Név] változó "János"-sal vagy "Péter"-rel egyenlő-e:

IfEx "[Név] = János OR [Név] = Péter"


Most megvizsgáljuk, hogy [Vezetéknév] megegyezik-e "Nagy"-gyal, ugyanakkor [Név] "Péter"-rel:

IfEx "[VezetékNév] = Nagy AND [Név] = Péter"


Jóval komplexebb kifejezésekhez használhatjuk a zárójeleket: "(" és ")", hogy a kiértékelések a megfelelő sorrendben legyenek végrehajtva.


While/Amíg

Cél:

Egy műveleti sort addig ismétel a While és az EndWhile között, amíg az adott feltétel nem teljesül. A műveleti sort az EndWhile paranccsal kell lezárni.

Kategória:

Szabályozó

Szintaxis:

While "első állítás" "operátor" "második állítás"

első állítás, második állítás

amely állításokat össze kell hasonlítani. Ezek lehetnek számok, szöveg, matematikai kifejezés, változó stb.

operátor

=

az első elem egyenlő a másodikkal

<

az első elem kisebb a másodiknál

>

az első elem nagyobb a másodiknál

<>

az első elem nem egyenlő a másodikkal

<=

az első elem kisebb vagy egyenlő a másodikkal

>=

az első elem nagyobb vagy egyenlő a másodikkal

második állítás

a második összehasonlítandó elem, ami lehet szám, szöveg, matematikai kifejezés, változó stb.

Példa:

A következő példában 100 hangot játszunk le 0 Hz-től 25 Hz-enként növelve a frekvenciát:

SetVar "[Számláló]" "0"

SetVar "[Frekv]" "0"

While "[Számláló]" "<" "100"

       Math "[Számláló]+1" "0" "[Számláló]"

       Math "[Frek]+25" "0" "[Frek]"

       PlayTone "[Frek]"

EndWhile


WhileEx/Amíg kifejezés

Cél:

Egy műveleti sort addig ismétel a While és az EndWhile között, amíg az adott feltétel nem teljesül. A műveleti sort az EndWhile paranccsal kell lezárni. Ez egy fejlettebb változata a While műveletnek.

Kategória:

Szabályozó

Szintaxis:

While "kifejezés"

kifejezés

a kiértékelendő kifejezés. Lásd az IfEx műveletet, hogy hogyan kell felépíteni egy kifejezést.

Példa:

While "[X] > 0 AND [Y] > 0"

       SetVar "[X]" "[X]-1"

       SetVar "[Y]" "[Y]-1"

EndWhile


ExitWhile/Kilépés amíg-ciklusból

Cél:

Kilép az adott While/WhileEx/EndWhile ciklusból. A végrehajtás az EndWhile utáni első művelettel folytatódik.

Kategória:

Szabályozó

Szintaxis:

ExitWhile

Példa:

SetVar "[nev]" ""

While  "[nev]" "=" ""

       InputBox "Üdvözöljük" "Adja meg a nevét:" "[nev]"

       If  "[nev]" "=" "Adminisztrátor"

               GotoPage "Setup"

               ExitWhile

       EndIf

EndWhile


Loop/Ciklus

Cél:

A Loop és az EndLoop állapotok között lévő parancsokat annyiszor hajtja végre, amennyiszer az indulási értéktől a leállási értékig a változó növekszik. (Ha a leállási érték kisebb az indulási értéknél, a ciklus végtelen lesz.)

Kategória:

Szabályozó

Szintaxis:

Loop "indulási érték" "leállási érték" "számláló változó"

indulási érték

a ciklus-számláló kiindulási értéke.

leállási érték

a ciklus-számláló leállási értéke.

számláló változó

a ciklus-számláló aktuális értékét tartalmazza.

Példa:

A következő példában egy adatfájlból olvasunk be adatokat az elsőtől az ötödik sorig, és egy figyelmeztető ablakban jelenítjük meg:

Loop "1" "5" "[szamlalo]"

       FileRead "termek.dat" "[szamlalo]" "[adat]"

       AlertBox "Termékek" "[adat]"

EndLoop


ExitLoop/Kilépés ciklusból

Cél:

Kilép az adott Loop/EndLoop ciklusból. A végrehajtás az EndLoop utáni első művelettel folytatódik.

Kategória:

Szabályozó

Szintaxis:

ExitLoop

Példa:

Loop "1" "100" "[szamlalo]"

       Random "100" "[R]"

       If "[R]" ">" "75"

               ExitLoop

       EndIf

EndLoop


GotoLine/Ugrás adott sorra

Cél:

Egy megadott sorra vagy címkéhez ugrik ugyanabban a műveleti parancssorozatban és onnan folytatja a végrehajtást. A címke egy kettősponttal (:) kezdődő leíró szöveg, amely egy blokk kezdetét szokta jelölni.

Kategória:

Szabályozó

Szintaxis:

GotoLine "sor száma vagy címke neve"

sor száma vagy címke neve

A szkriptben lévő sor száma vagy egy címke neve.

Példa:

:Teteje

InputBox "Stop" "Adja meg a jelszót!" "[jelszo]"

If "[jelszo]" "=" "ahogy222"

       GotoPage "Start"

Else

       GotoLine "Teteje"

EndIf



Függvény könyvtár

Call/Meghívás

Cél:

Végrehajt egy előre definiált szkriptet a Függvénykönyvtárból.

Kategória:

Szabályozó

Szintaxis:

Call "függvénynév" "függvényparaméterek"

függvénynév

a Függvénytárban előre definiált függvény neve

függvényparaméterek (opcionális)

ha a kiválasztott függvény paramétereket igényel, itt adhatjuk meg idézőjelek között. Paraméterek nélküli függvénynél csak a függvénynév szükséges!

Példa:

Call "konyvjelzo_mentese"



Szubrutin műveletek

GoSub/Szubrutinhoz ugrás

Cél:

Végrehajt egy szubrutin műveletet.

Kategória:

Szabályozó

Szintaxis:

GoSub "szubrutinnév"

szubrutinnév

a meghívandó szubrutin neve

Példa:

A következő példa végrehajtja az OlvasoInfoMentes szubrutint.

Gosub "OlvasoInfoMentes"


Return/Visszatérés

Cél:

Kilép abból a műveleti részből, illetve szubrutinból, amelyikben éppen van, és visszatér az előzőhöz.

Kategória:

Szabályozó

Szintaxis:

Return

Példa:

:Szubrutin1

       AlertBox "Helló!" "Ez az első szubrutinom!"

Return


Megjegyzés: Ezt a műveletet leggyakrabban a szubrutin műveletnél használjuk.



Egér függvények

SetMousePos/Egérhelyzet beállítása

Cél:

Az egérkurzort egy megadott koordinátára viszi.

Kategória:

Szabályozó

Szintaxis:

SetMousePos "x koordináta" "y koordináta"

x koordináta, y koordináta

az egérkurzor új helyzete a kiadvány bal felső sarkához viszonyítva pixelben.

Példa:

Az alábbi példa a 100; 150 pontba viszi a kurzort, és egy egérgomb lenyomást szimulál:

SetMousePos "100" "150"

ClickMouse


GetMousePos/Egér helyzete

Cél:

Az egér helyzetének (koordinátáinak) megállapítása. Az origó a kiadvány bal felső sarkában van.

Kategória:

Szabályozó

Szintaxis:

GetMousePos "x változó" "y változó"

x változó

az egér x koordinátáját tároló változó

y változó

az egér y koordinátáját tároló változó

Példa:

GetMousePos "[X]" "[Y]"


ClickMouse/Egérkattintás

Cél:

Egy egérkattintást szimulál.

Kategória:

Szabályozó

Szintaxis:

ClickMouse

Példa:

A példa a kurzort a 100, 150 koordinátára viszi, ahol egy egérkattintást hajt végre. (Ha ezen a koordinátán egy nyomógomb van, akkor annak az utasításait fogja végrehajtani.)

SetMousePos "100" "150"
ClickMouse



Matematikai műveletek

Math/Matematikai művelet

Cél:

Egy matematikai műveletet hajt végre, majd a változóban tárolja az eredményt.

Kategória:

Szabályozó

Szintaxis:

Math "matematikai művelet" "tizedes jegyek száma" "változó"

matematikai művelet

egy algebrai kifejezés

A legtöbb alapfüggvényt használhatjuk:

       +        összeadás

       -        kivonás

       *        szorzás

       /        osztás

       abs        abszolút érték

       sin        szinusz

       cos        koszinusz

       atan        arkusz tangens

       sqr        négyzetre emelés

       sqrt        négyzetgyök-vonás

       round        kerekítés

       trunk        csonkítás

Zárójeleket és változókat is tartalmazhat a kifejezés. A matematikai függvényeket követő képletet kerek zárójelek közé kell tenni.

tizedes jegyek száma

a számítási eredmény tizedes jegyeinek száma.

változó

az algebrai művelettel kiszámított eredmény tárolója

Példa:

A következő példában a Math függvény a [havirendelés] változót használja a számításhoz. A [havirendelés] változót a SetVar művelettel tudjuk beállítani, vagy a Szövegbeviteli mezővel (Text Entry) a felhasználó adhat neki értéket. Az eredmény két tizedes jegyet fog tartalmazni (második paraméter), és az eredményt a [hetirendelés] változóban tároljuk. A [hetirendelés] változót megjeleníthetjük például egy címsorban, vagy egy figyelmeztető ablakban.

Math "[havirendelés]*12/52" "2" "[hetirendelés]"

AlertBox "Eredmény" "A válasz: [hetirendelés]"

A következő példa kiszámítja 150 fok koszinuszát két tizedes jegy pontossággal, és az [eredmény] változóban tárolja:

Math "Cos (150)" "2" "[eredmény]"


Megjegyzés: Azok a műveletek, amelyek számot várnak, elfogadják a matematikai műveleteket is, mint paramétert.


Random/Véletlenszám

Cél:

Egy véletlen számot generál nulla és az általunk megadott maximális érték között.

Kategória:

Szabályozó

Szintaxis:

Random "maximális érték" "változó"

maximális érték

a generált szám maximális értéke.

változó

amelyikben a generált számot tárolja.

Példa:

A következő példában a képernyő szélessége és magassága adott, és a Random művelettel egy képet helyezünk el véletlen pozíciókban (a kép vízszintes és függőleges koordinátáit, valamint a megjelenítés idejét generáljuk).

:Start

SystemInfo "PubWidth" "[PW]"

SystemInfo "PubHeight" "[PH]"

Random "[PW]" "[X]"

Random "[PH]" "[Y]"

Random "[5000]" "[L]"

PopupImage "[X]" "[Y]" "C:\flower.bmp" "[L]" "Dissolve" "0"

GotoLine ":Start"


DateToNum/Dátumot számmá

Cél:

Egy dátum formátumot számmá alakít, amit további matematikai műveletekhez használhatunk. Az eredmény egy numerikus dátum, amelyik az 1899. december 30-dikától eltelt napok számával egyezik meg. Egy numerikus dátumto a NumToDate művelettel alakíthatunk vissza dátum formátummá.

Kategória:

Szabályozó

Szintaxis:

DateToNum"dátum" "formátum" "változó"

dátum

két vagy három számból álló dátum, amelyek „\”, „/” vagy „-” karakterekkel van elválasztva. Ha az év értéke 0 és 99 között van, a jelenlegi évszázadot jelenti. A dátum formátumának a következők közül egynek kell lennie.

formátum

m/d/y

hónap/nap/év

d/m/y

nap, hónap, év

y/m/d

év, hónap, nap

Default

(alapállapot): a számítógép rendszerében beállított dátum formátum

változó

a számmá konvertált dátum tárolására szolgáló változó neve

Példa:

A következő példa a 2004. december 15-dikétől eltelt napok számát adja:

DateToNum "12/15/2004" "m/d/y" "[Kiindulas]"

DateToNum "[DateShort]" "Default" "[Ma]"

Math "[Ma] - [Kiindulas]" "0" "[Eredmeny]"

AlertBox "Válasz" "2004. december 15-dikétől [Eredmeny] nap telt el."


NumToDate/Számot dátummá

Cél:

Egy numerikus dátumot alakít formázott dátummá. (A numerikus dátum a 1899. december 30-dikától eltelt napok számát jelenti, és a DateToNum művelettel lehet előállítani.)

Kategória:

Szabályozó

Szintaxis:

NumToDate "szám" "formátum" "változó"

szám

egy numerikus dátum

formátum

A konvertált dátumformátum. A következőket használhatjuk az előállítására, amelyeket "/" törtvonallal kell elválasztani: d: , dd: , m:  mm: , yy: , yyyy: , Default:


d

nap mint szám, nincs nulla az elején (1-31)

dd

nap mint szám, bevezető 0-val (01-31)

m

hónap, mint szám, nincs nulla az elején (1-12),

mm

hónap, mint szám, bevezető nullával (01-12)

yy

év mint kétjegyű szám (00-99)

yyyy

év mint négyjegyű szám (0000-9999)

/

A dátumválasztót a Windows Vezérlőpultjában meghatározottnak megfelelően jeleníti meg.

Defalt

alapértelmezett, a számítógép rendszerében beállított dátumforma.

Például "yyyy/mm/d" esetében 2005/03/15 lesz.

változó

a dátummá konvertált szám tárolására szolgáló változó neve

Példa:

NumToDate "38426" "m/d/yyyy" "[Datum]"



Egyebek

Delay/Késleltetés

Cél:

Szünetelteti a végrehajtást a megadott ideig. (Milliszekundum a másodperc ezredrésze.)

Kategória:

Szabályozó

Szintaxis:

Delay "idő"

idő

a késleltetés ideje milliszekundumban

Példa:

Delay "2000"


SystemInfo/Rendszerinformáció

Cél:

A felhasználó számítógépéről nyerhetünk információt, amit a változóban tárol.

Kategória:

Szabályozó

Szintaxis:

SystemInfo "információ-típus" "változó"

információ-típus

A következők közül az egyik lehet:

PubAuthor: a kiadvány készítője;

PubColor: a kiadvány színeinek száma;

PubDir: a kiadvány elérési útvonala;

PubHeight: a kiadvány magassága (pixel);

PubWidth: a kiadvány szélessége (pixel);

PubTitle: a kiadvány címe;

ScreenColors: a képernyő színeinek száma;

ScreenHeight: a képernyő magassága (pixel);

ScreenWidth: a képernyő szélessége (pixel);

SystemDir: a rendszerkönyvtár elérési útvonala;

TempDir: az átmeneti fájlok könyvtárának elérési útvonala;

WindowsDir: a Windows könyvtár elérési útvonala;

UserName: a felhasználó neve.

rendszer környezeti változó, % jelek közé téve.

változó

az információ eredményének tárolási helye.

Példa:

A következő példában összehasonlítjuk a számítógép színfelbontását a kiadvány által használt színfelbontással, és figyelmeztető üzenetet küldünk a felhasználónak, ha a számítógépének alacsonyabb a felbontása mint a kiadványé.

SystemInfo "ScreenColors" "[KépernyőMód]"

SystemInfo "PubColors" "[PubMód]"

If "[PubMód]" "<>" "[KépernyőMód]"

AlertBox "Figyelem!" "Ez a kiadvány [PubMód] színű képernyő-|felbontást igényel. Az Ön számítógépe|jelenleg [KépernyőMód] színű, így a látvány nem lesz kielégítő."

EndIf


Ha egy rendszerkörnyezeti változó tartalmát szeretnénk megtudni, az információtípust cseréljük le a változó nevével, amit % karakterek közé helyezünk:

SystemInfo "%PATH%" "[Result]"


A SystemInfo művelet elavulttá vált, amióta a globális változók ezeket az információkat is tartalmazzák. an can be referenced directly. Az első példát a következőképpen is megoldhatjuk:


If "[PubColors]" ">" "[ScreenColors]"

AlertBox "Figyelem!" "Ez a kiadvány [PubColors]színű képernyő-|felbontást igényel. Az Ön számítógépe|jelenleg [ScreenColors] színű, így a látvány nem lesz kielégítő."

EndIf


A korábbi NeoBook verziók kompatibilitása miatt szükség volt arra, hogy a SystemInfo művelet megmaradjon.


Suspend/Felfüggesztés

Cél:

Ideiglenesen felfüggeszti az egér és a billentyűzet beviteli folyamatát. A True (Igaz) felfüggeszti, a False (Hamis) ismét engedélyezi a beviteli folyamatot. Ez akkor lehet hasznos, ha parancssorozatot akarunk végrehajtani, mielőtt az olvasó egy gombra kattinthatna. Szintén hasznos lehet ez a parancs az egér fölé/egér el műveleteknél. A False (Hamis) érték automatikusan végrehajtásra kerül, amikor a meghívott szkript befejeződött.

Kategória:

Szabályozó

Szintaxis:

Suspend "állapot"

állapot

A következők közül az egyik lehet:

True (Igaz)

False (Hamis)

False+NoBuffer


Alapállapotban a NeoBook automatikusan eltávolítja az egérműveleteket és billentyűleütéseket a Windows puffertárolójából, amikor a Suspend le van tiltva (azokat a műveleteket, amelyeket az olvasó a Suspend alatt végez az egérrel, illetve a billentyűzettel). Ha ezeket az egérműveleteket és billentyűleütéseket meg akarjuk őrizni a pufferban, hogy azokat a NeoBook végrehajtsa a Suspend után, a NoBuffer opciót adjuk a False állapothoz:

"False+NoBuffer"

Példa:

A következő példa felfüggeszti a beviteli folyamatot, amíg a műveletek egy sorozata be nem fejeződött.

Suspend "True"

ShowObject "Picture1" "Dissolve" "5"

ShowObject "Picture2" "Dissolve" "5"

ShowObject "PushButton1" "Dissolve" "5"

Suspend "False"


Megjegyzés: Ügyeljünk, ha a Suspend műveletet a Loop vagy a While Loop vagy a While művelettel használjuk. Ha a beviteli műveletet a Loop vagy a While utasítás előtt függesztjük fel, az olvasó nem tud beavatkozni, amíg ezek az utasítások nem fejeződnek be.


ShowErrors/Hibák megjelenítése

Cél:

A hibaüzenet ablak megjelelenítését kapcsolja be, illetve ki.

Kategória:

Szabályozó

Szintaxis:

ShowErrors "állapot"

állapot

ha meg akarjuk jeleníteni a hibaüzenet ablakot, akkor állítsuk "TRUE"-ra, ha magunk akarjuk kezelni a hibát, akkor "FALSE"-ra. A legutolsó hibát a [LastError] változó tartalmazza.

Példa:

ShowErrors "False"

FileRead "config.dat" "1" "[Regkey]"

If "[LastError] " ">" ""

       AlertBox "Hiba" "A konfigurálás érvénytelen!"

EndIf

ShowErrors "True"


LoadIcon/Ikon betöltése

Cél:

Egy alkalmazás vagy tálca ikont tölt be, és cseréli le az újra, vagy visszaállíthatjuk azt, amelyiket a Kiadvány tulajdonságai részben beállítottunk.

Kategória:

Szabályozó

Szintaxis:

LoadIcon "fájlnév" "ikon"

fájlnév

egy Windows formátumú ikon (ico) fájl neve az elérési útvonallal.

ikon

A következők közül az egyik:

MainIcon

fő ikon. A kiadvány fő ikonját cseréli ki a betöltöttre

TrayIcon

tálca ikon. A kiadvány tálca ikonját cseréli ki a betöltöttre. Csak a Tálcára ülő alkalmazás esetén érvényes!

ÜRES

Ha üresen hagyjuk, a kiadvány eredeti ikonja látható ismét.


Példa:

LoadIcon "C:\Samples\Busy.ico" "MainIcon"



Hibakereső

DebugBreakPoint/Hibakereső megszakítási pont

Cél:

Leállítja a futó szkriptet, és egy üzenetet jelenít meg. Ez a művelet csak a teszt üzemmódban hatásos, a lefordított kiadványban nincs hatása.

Kategória:

Szabályozó

Szintaxis:

DebugBreakPoint "üzenet"

üzenet

A párbeszédablak üzenete. Sortöréshez a pipa (| = Alt+124; Alt Gr+w) karaktert használhatjuk.

Példa:

DebugBreakPoint "A végrehajtás felfüggesztve."