BREAK | Verlaat de herhaling onmiddellijk. |
CONTINUE | Springt naar de volgende herhaling. |
DO … LOOP | Oneindige herhalingslus (dus zonder test – meestal met exit). |
FOR … NEXT | Herhalingslus met teller. |
FOR EACH … NEXT | Herhalingslus met opsomming. |
REPEAT … UNTIL | Herhalingslus met test aan einde. |
WHILE … WEND | Herhalingslus met test aan het begin. |
GOTO |
Onvoorwaardelijke sprong. Typisch kenmerk van BASIC en algemeen verwerpelijk geacht. |
QUIT | Quits the program. |
RETURN | Terug naar hoofdprogramma. |
STOP | Markering, onderbrekingspunt. |
WITH … END WITH | Default object selector. |
Choose | Choose a value from a list. |
IIf | Immediate test function |
IF … THEN … ELSE … ENDIF | Conditional structure. |
SELECT CASE … END SELECT | Choice structure. |
IF Expression [ { AND IF | OR IF } Expression ... ] THEN ... [ ELSE IF Expression [ { AND IF | OR IF } Expression ... ] THEN ... ] [ ELSE ... ] ENDIF
.module | Module is extra file, bv “getdata.module” in de projectdirectory. |
modulename.function | Aanroep door modulenaam met punt, gevolgd door procedure- of functienaam in die module |
Parameter passing |
PUBLIC FUNCTION SetColorName(iVal AS Integer) AS String geeft naam van een kleur terug (string) voor de waarde die gegeven werd (getal) |
… |
Hergebruik:
Modules
' Module modNaam PUBLIC publiekeVarNaam AS Type PRIVATE variabeleNaam AS Type PUBLIC FUNCTION SetSomeValue (iVal AS Integer) AS Boolean ... instructies .... END PROCEDURE ProcedureNaam DIM variabelenaam AS Type ... instructies ... END
Je kan dan in het programma modNaam.publiekeVarNaam
en modNaam.ProcedureNaam
gebruiken.
Forms
PRIVATE $hConn AS Connection PUBLIC SUB Bewerking() DIM variabele AS Type TRY $hConn.Close ... verdere instructies ... WITH $hConn .Type="mysql" ... END WITH ... verdere instructies ... END
TRY en Error
TRY ietsuitvoeren IF ERROR THEN foutafhandeling
Classes
In de classe definieer je de eigenschappen:
PUBLIC : kan van buitenaf ingevuld, gewijzigd enz worden, zonder controle.
PRIVATE : kan van buitenaf niet benaderd worden
PRIVATE $naam : kan van binnen heel de klasse benaderd worden
PROPERTY READ : kan alleen opgevraagd worden (alleen _Read)
PROPERTY : kan van buitenaf waarde toegekend en opgevraagd worden
De property_naam zal altijd (meestal) een interne PRIVATE tegenhanger hebben die gemanipuleerd wordt binnen de klasse met de standaard functie / procedures:
-
PRIVATE FUNCTION propertyNaam_Read() AS ...
-
PRIVATE SUB propertyNaam_Write(Value AS ...)
Deze functies worden in de IDE automatisch gemaakt (leeg) bij creatie van een PROPERTY.
In de _Write code kan je dan bv controles opnemen, in de _Read bv een teller bijhouden.
De PROPERTY READ is extern zichtbaar als een alleen-lezen variabele. Ze zal in de class ergens ook een waarde moeten krijgen, dus altijd een interne “SET…” hebben?
Eigenlijk wordt de waarde ervan geleverd door de functie _Read; in die functie wordt een waarde teruggegeven.
Dat kan zijn:
- de waarde van een interne variabele (met een $overalindeclassbereikbaar)
- het resultaat van een bewerking.
De PROPERTY READ is dus eigenlijk een truukje om een intern schrijfbare variabele extern enkel leesbaar te maken. Omdat de waarde geleverd wordt door een functie moet er geen interne tegehanger van de variabele zijn.
Voorbeeld: database met id’s die van het type integer zijn. Je kan extern die id wel zichtbaar maken, bv door ze in de _Read functie terug te geven als een tot string omgezette integer waarde. Van buitenuit moet de id nooit “gezet” worden, intern wordt ze van de database opgehaald en bestaat ze als integer.
Objects
DIM hParent AS OBJECT
SetProperty ( Object AS Object, Property AS String, Value AS Variant )
Static methods :
- Attach
- Call
- Class
- Count
- Detach
- GetProperty
- Is
- IsLocked
- IsValid
- Lock
- New
- Parent
- SetProperty
- Type
- Unlock
Voorbeeld (uit de IDE source FForm.class):
'FForm.class PUBLIC Name AS String ... PUBLIC Master AS CControl PUBLIC Selection AS NEW Collection PUBLIC Control AS NEW Collection(gb.Text) PUBLIC Menus AS NEW Object[] PUBLIC Container AS NEW Container PROPERTY READ ReadOnly AS Boolean PRIVATE CONST MODE_NOTHING AS Integer=0 PRIVATE CONST MODE_CREATE AS Integer=1
zie ook https://gambaswiki.org/wiki