Lees een letter: j/n

Soms is het meest eenvoudige moeilijk te vinden als je altijd in een grafische GUI omgeving bezig bent…

commandline programma (CLI):

'gambas module file
Public Sub Main()
  Dim s As String
  Print "Verdergaan? j/n"
  Input s
  Print "Je antwoord was " & s
End

Gecompileerd programma start niet

Programma gecompileerd in de Gambas3 IDE, met link op desktop.

Bij klik op programma lijkt het te willen starten, maar het sluit onmiddellijk af voor je eender wat ziet.

Tip
Probeer eens vanop de commandolijn. Als je in KDE werkt en Gambas3 een link maakte op de desktop, kan je die bekijken met Kate.

kate mijnapp.desktop

In dat bestand van die link zie je hoe het programma gestart wordt in de lijn die begint met Exec=, bv:

Exec='/home/user/myPrograms/mijnapp.gambas'

Geef zelf dat commando in op de commandolijn (knip+plak) ..

user@localhost:~ ./myPrograms/mijnapp.gambas

en kijk wat de reaktie is; bv:

MMain.@init.0: #2 Connot load class 'CDataContext': Unable to load class file
MMain.@init.0

Gebruik die reaktie om in de programmeeromgeving aanpassingen te doen.

Het programma mist hier blijkbaar de klasse CDataContext.

  • Start de Gambas3 IDE en kijk of die klasse aanwezig is.
  • Mogelijk wordt ze geladen uit een “library”, dus controleer ook de libraries…

Eén van de oorzaken kan zijn dat de klasse geen “EXPORT” bevat aan het begin.

* Ps: dit geldt ook als gambas zelf niet start.

ValueBox.Allowed is not a property

Het programma dat werd geïmporteerd uit gambas2 naar gambas3 3.14 (op KDE/openSUSE 15.3) crasht of (gedraaid vanuit de IDE) stopt met de melding:

ValueBox.Allowed is not a property

Een zoek op “ValueBox.Allowed” in de broncode van het scherm waarin het gebeurt levert niets op.
Een zoek op “ValueBox.Allowed” in de broncode van het hele project levert ook niets op.

Langzaam begin ik te vermoeden dat de foutmelding te maken heeft met het venster (Form) dat een beetje verder in de code geopend wordt.

In dat scherm worden een aantal waarden geïnitialiseerd, en daarbij worden valueboxen zo behandeld:

vlbxSomeValue.Clear()

Die heb ik er uit gehaald;
(eventueel vervangen door:
vlbxSomeValue.Value = 0?)

Het volgende probleem is:
vlbxAmounthh.Select()