Gambas 3 <> Gambas 2

Gambas2-Gambas3 incompatibiliteit
Gambas2 code is niet volledig compatibel met Gambas3 code, je kan die niet zomaar draaien. In de ontwikkeling van Gambas2 werd al aangegeven welke dingen zouden gaan verdwijnen (bv. “backcolor”).

Omzetten Gambas2-Gambas3
Bij het openen/importeren van een Gambas2 programma in Gambas3 zorgt de IDE voor het converteren van het Gambas2 naar een Gambas3 programma. Dat verloopt “redelijk” goed.

Behalve…
Volgende problemen heb ik gehad
normaal hebben ze te maken met het verschil tussen de twee versies, tenzij er toevallig echte bugs tussen zitten; zowel van de code als van de gambas-versie.

Voorbeelden:

backcolor, forecolor
De eigenschap van “BackColor” bestaat niet in Gambas3; te vervangen door “Background”.
Gridview_Cell.BackColor -> Gridview_Cell..Background
Gridview_Cell.ForeColor -> Gridview_Cell.Foreground

Hetzelfde voor ForeColor -> ForeGround

HSplit instellingen
Het bewaren en terug ophalen van waarde van een HSplit container.
(foutmelding op string: “Type mismatch: wanted Integer[], got String instead” bij ophalen Setting)
HSplit1.Settings = Settings[“Screen/Spitter”, “150,600,300,160”]
(dit effect verdween nadat de settings file gekopieerd werd naar deze computer – de fout zit dus in de alternatieve waarde-string; mogelijk bug van dit programma.)
Gevonden in een artikel op de mailinglist:
– bewaar:
Settings["Screen/HSplit1.Layout"] = HSplit1.Layout
– ophalen:
HSplit_Main.Layout = Settings["Screen/HSplit1.Layout"] = HSplit1.Layout
Dit werkte, en in de config file wordt het
Splitter.Layout=[0, 160, 780, 470, 470]
in plaats van:
Splitter="0, 160, 780, 470, 470"

Database connection open?
empty result set retrieving data from mysql/mariadb… “connection is not opened”
Opgelost met het toevoegen van een “TRY $hCon.Open”
(niet onderzocht waar het verschil tussen 2 en 3 hier zit).

Text cursor positie
Hier niet helemaal zeker van wat 2 betreft, maar ik ondervond dat ik de cursor zelf bovenaan moet zetten in 3.
TextArea1.Pos = 0