Bestaan globale variabelen in Gambas?

Volgens de tip of the day zijn er geen globale variabelen in Gambas. Je kan wel op hoogste niveau een variabele declareren en die gebruiken; ofwel vanuit de hoofdmodule (main module):
PUBLIC myGlobalVar
ofwel vanuit het hoofdscherm (FMain):
PUBLIC STATIC myGlobalVar

Om ze te gebruiken vermeld je de modulenaam:
ModMain.myGlobalVar
FMain.myGlobalVar

Wat ik ook al gezien heb is een aparte module waarin de variabelen komen die je gemeenschappelijk nodig hebt:
ModCommon.myGlobalVar

Rolluik: ComboBox als afrol-lijst (Drop-down list)

ComboBox De Combobox lijkt het meest op een gewone “drop down list” of rolluiklijst.
Toch gedraagt hij zich niet zo. Als je op de lijst klikt gaat die niet open, maar krijg je een “carrot” of cursor in het woord “ComboBox1” (knipperend vertikaal streepje).
De enige plek waar je de lijst kan doen openklappen is het pijltje rechts ernaast, en dat is in verhouding een klein vlak.
Om de hele oppervlakte op een klik te laten reageren met openklappen van de keuzelijst kan je het gedrag van “mousedown” definiëren:
Rechtsklik, Events, MouseDown brengt je in de code onder PUBLIC SUB ComboBox1_MouseDown() van de combobox. Voeg daar de “Popup” toe:

PUBLIC SUB ComboBox1_MouseDown()
ComboBox1.Popup()
END

Wil je de lijst nog “gevoeliger” maken kan je in plaats daarvan de lijst al laten openklappen als het pijltje er voorbijkomt:

PUBLIC SUB ComboBox1_enter()
ComboBox1.Popup()
END

Hoe je die lijst terug laat “inklappen” als je niet geselecteerd / geklikt hebt, heb ik niet gevonden.
(misschien met de _leave methode?)

Meer dan 1 waarde terugkrijgen uit functie

Een functie geeft normaal geen, ofwel 1 waarde terug. De waarde kan een boolean zijn voor gelukt/niet gelukt, of het resultaat van een berekening of bewerking op getallen of tekst.

Als de functie meer dan 1 waarde moet teruggeven, kan je een array vullen met de waarden.

Of zoals Benoît zelf voorstelt:

I think the better is using an array of Variant, or better an anoynmous array:

FUNCTION DoSomething(Name AS String) AS Array
DIM FirstResult AS ...
DIM SecondResult AS ...
' Do something
RETURN [FirstResult, SecondResult]
END

Op deze manier kan je tot 63 resultaatwaarden teruggeven.