Gambas3 updates v.a. 2024

Zie ook
Gambas3 updates 2018-2023.
Gambas2 updates

Gambas updates (v.a. ong dec 2023) – 2024:
(Vastgesteld ,vooral op OpenSUSE. Algemene “Release page“, voor Ubuntu zie bv hier)

2024-11-05
OpenSUSE 15.6: Gambas3 v. 3.19.5-lp156.2.1
build 19 oktober 2024 : Gambas is terug van weggeweest bij Suse

2024-08-19
OpenSUSE 15.5: Gambas3 verwijderd?
OpenSUSE Tumbleweed: Gambas3 verwijderd?
Niet meer in de repositories aanwezig, en de IDE kan door een update zelfs gedeinstalleerd worden! Zie Waar is Gambas…
– Hopelijk een tijdelijk (vakantie-) probleem. (*)

– upd: * Zie Gambas is terug

2024-07-28
OpenSUSE 15.5: Gambas3 v 3.19.3-lp155.2.1

2024-07-05
OpenSUSE 15.5: Gambas3 v 3.19.3-lp155.1.1

2024-05-31
OpenSUSE 15.5: Gambas3 v 3.19.2-lp155.1.2

2024-05-31
OpenSUSE 15.5: Gambas3 v 3.19.2-lp155.1.1

2024-03-20
OpenSUSE 15.5: Gambas3 v 3.19.1-lp155.2.1

2024-03-17
OpenSUSE 15.5: Gambas3 v 3.19.1-lp155.1.1

2024-03-12
OpenSUSE 15.5: Gambas3 v 3.19.0-6.3

??
OpenSUSE 15.5: Gambas3 v 3.19.0-5.3

2024-02-08
OpenSUSE 15.5: Gambas3 v 3.19.0-lp155.10.1
Het lijkt me dat hierna de icoontjes zijn veranderd. Ze zijn eenvoudiger en kleurlozer gewordenm niet echt een verbetering…

2024-01-15
OpenSUSE 15.5: Gambas3 v 3.18.4-lp155.10.1

Gambas 3 op Raspberry Pi 400 kit

Op de meegeleverde SD kaart staat Raspbian 11.
Na installatie/configuratie bij het eerste opstarten van de Pi, moet je Gambas apart bij installeren.

  • Add/Remove software
  • Linkse kolom bij de software groepen: Ontwikkeling (Development)
  • of zoek “Gambas”
  • Kies bv “Complete Visual Development environment for Gambas”, om de hele IDE+andere onderdelen te krijgen, bevestig
  • Bevestig, wachtwoord geven : “installing packages – please wait ..”

Als de installatie klaar is, staat Gambas3 in het menu onder Programmeren: het is versie 3.15.2. De voorbeelden zijn niet mee geïnstalleerd.

Gambas3 op Raspberry Pi 5 (2)

Een andere configuratie:
- Raspberry Pi 5 Model B Rev 1.0 8GB
- OS: Debian GNU/Linux 12 (bookworm)

Gambas installeren

Add/Remove software: Gambas3 IDE 3.18.0-4 (64 bit)
Eerst even:
apt-get update

Ergens melding versie gewijzigd van 12.6 naar 12.7

apt-get upgrade

Er gebeurt een hele upgrade … nadien herstart en nog eens de updates van het desktop icoon gedraaid.

Dan software installeren, zoek gambas3
Bovenaan gambas3-3.18.0 (meta package) complete visual development environment for Gambas.

Daarna staan alle (of toch veel) gambas3 componenten geselecteerd in de Add/Remove software tool.
Bevestigen…
In het programmeermenu is nu Gambas aanwezig.

Gambas start niet

Maar ik kan het niet starten, er gebeurt op het eerste zicht niets als je via het menu start.

De opdracht in het menu-item is gambas3

Foutmelding als je van de commandline start:

ERROR #27 Cannot load component ‘gb.gtk3.wayland’: cannot find component

Check in Add/Remove Software: welke staan grijs (en zijn dus niet geïnstalleerd):

gambas3-gb-gui-opengl-3.18.0-4 transitional package
gambas3-gb-gui-qt-3.18.0-4 " "
gambas3-gb-gui-qt-webkit-3.18.0-4 " "
gambas3-gb-gui-trayicon-3.18.0-4 " "
...
gambas3-gb-inotify-3.18.0-4 filesystem events monitoring component
..
gambas3-gb-libxml-3.18.0-4 libxml component
..
gambas3-gb-option-3.18.0-4 option component
..
gambas3-gb-pdf-3.18.0-4 pdf component
..
gambas3-gb-qt5-3.18.0-4 Qt5 GUI component
gambas3-gb-qt5-ext-3.18.0-4 QT5 GUI component
gambas3-gb-qt5-opengl-3.18.0-4 OpenGL component with QT5 toolkit
gambas3-gb-qt5-wayland-3.18.0-4 Wayland
gambas3-gb-qt5-webkit-3.18.0-4
gambas3-gb-qt5-webview-3.18.0-4
gambas3-gb-qt5-X11-3.18.0-4
..
gambas3-gb-report-3.18.0-4
..
gambas3-gb-sdl-3.18.0-4 oudere SDL component vervangen door SDL2
gambas3-gb-sdl-sound-3.18.0-4
..
gambas3-gb-v4l-3.18.0-4 video for Linux
..
gambas3-gb-web-form-3.18.0-4 web application - verv d. web-gui?

De wayland component is inderdaad één van de gambas3 componenten die grijs staan, niet geïnstalleerd werden.

Bijgeïnstalleerd via software Add/Remove..

Er zijn verschillende “uitgerangeerde” componenten, zoals bv pdf die functioneel vervangen wordt door poppler, waarbij normaal is dat ze niet geïnstalleerd worden.

Gambas crasht

Vanuit Menu Programmeren: Gambas start op maar krijgt onmiddellijk een gestreept scherm (Gambas venster op volledig scherm), met in het midden er bovenop een wel leesbaar kleiner venster met de Gambas tip van de dag. Ik sluit de tooltips en druk op escape om de venstergrootte te veranderen, maar dat sluit Gambas.
Daarna kan ik niet terug starten uit het menu.
Wel vanop de commandolijn. Beetje proberen en daarna ook terug uit het menu.
Het lukt me om het venster van de Gambas IDE wat kleiner te maken, en nu krijg ik wel beeld zonder strepen.

Deze installatie-combinatie heeft dezelfde bug als voorheen al ontmoet; bij het klikken op een document uit “Data” of “Gegevens”. Zelfs al heb je het daarvoor zelf aangemaakt… programma crasht.
Voorlopig dus dezelfde truuk: die bestanden niet aanklikken (en als ze moeten veranderen dat buitenaf doen).

Gambas kan project niet openen
Maar dan, met het afhalen van bestaande projecten merk ik foutmeldingen bij het openen ervan.

Read-only array

Kan project bestand niet openen:
/home/ara/gb3prj/runcounter

Read-only array
[gb.gui.base].^^Desktop.GetDesktop.58 [gb.gui.base].^^Desktop.Types_Read.72 [gb.gui.base].^^Desktop.Is.79 VersionControl.GetTextEditor.56 VersionControl.Refresh.99 Project.Open.688 FWelcome.btnOpen_Click.186 CCoolButton.Panel_MouseUp.149 ?

Ontbreekt er nog iets van Gambas3?

Ik probeer met alle “transitional packages” (gb-gui/gui-qt/gui-qt-webkit/trayicon) bij te installeren, maar ook dat helpt niet om de bestaande projecten te openen, ook niet die op een (oudere) Raspberry Pi gemaakt zijn.

Ik kan wel een mini-project maken met een knop en een menu, dat draait en kan gecompileerd worden tot uitvoerbaar programma, en ook gestart van een icoon op de desktop.

Het lijkt dus iets te maken te hebben met de Desktop, en ik ga eens proberen een library die geen enkele Form heeft over te nemen/aan te passen uit een bestaand project. Ik pas een bestaand project in die zin aan, maar dat is niet de oorzaak blijkbaar.

Eén van de verschillen is dat de bestaande projecten allemaal in git zitten (afgehaald zijn met git clone).
Ik vindt een oude fout terug ivm het gedefinieerd zijn van EDITOR (en VISUAL ?)
Maar die instellen lijkt niets te veranderen aan de problemen.

GIT
Toch nog verdergaan op git: mijn voorbeelden waren allemaal binnengehaald van gitlab, en ik probeer nu van één daarvan de .git directory te verwijderen, en de .gitignore ook. Resultaat: ik kan het project nu wel openen! (*)

* Opgelet: het crash-probleem blijft, dus niet op README of Changes.txt klikken!

Gambas3 op Raspberry Pi 5 (1)

Hoewel Gambas al een tijdje standaard aanwezig is in de Raspberry Pi systemen, ondervind ik in maart 2024 een probleem met Gambas3 3.18.0 op een Raspberry Pi 5 (4GB versie) met Debian GNU/Linux 12 Raspberry Pi Debian 1:6.6.47 aarch64 (onderaan de volledige gambas system info).

Ik kon Gambas installeren, ik kan de IDE starten, ik kan een project openen, en zelfs het project compileren en uitvoeren.
Maar er is iets fout met de IDE van Gambas3; als ik in de linkse kolom op een tekstbestand klik, bv Changes.txt, crasht de IDE met:

This application has raised an unexpected error and must abort.
Read-only array (#65).
[gb.gui.base].^^Desktop.GetDesktop.58

Twee knoppen bij die melding: Negeer en Sluiten.
– Negeer: geeft terug dezelfde fout, en opnieuw en opnieuw, tientallen keren.
– Sluiten: Gambas IDE sluit af.

Ik vind die foutmelding terug op https://gambaswiki.org/wiki/error/sarray

Read-only array (65)
A method or a property cannot be applied to a read-only array.

Dus, het lijkt een Gambas foutmelding te zijn? De IDE is gemaakt in Gambas, dus een foutmelding uit de IDE? De IDE is zelf een Gambas project….
– ik haal de gambas master af: 3.19.90. Compileert niet, foutmeldingen die waarschijnlijk te maken hebben met backward compatibility problemen.
– ik haal 3.18.4 af. Open in IDE. Run… ok!! En die crasht ook. Op lijn 588 in FMain:
hProgList = DesktopFile.FromMime(sMime)
Ik begrijp niets van de foutmelding ivm read only, maar ik wel wel even zien wat het programma zou doen als het voorbij deze fout geraakt:
Try hProgList = DesktopFile.FromMime(sMime)
Niets. Of beter: alles. Geen probleem meer, ik kan de Data bestanden openen in de IDE en er in werken. Opgelost!? Nog raar: als ik de in Gambas gecompileerde 3.18.4 start, geeft die als versienummer toch 3.18.0… ik heb het gevoel dat er niets niet klopt…

Omzeilen
Eigenaardig genoeg werkt de Gambas3 programmeeromgeving perfect zolang je niet klikt op de verkeerde plaats. Je kan dus WEL:
– een project openen
– een Form wijzigen
– de Form code wijzigen
– het project compileren, uitvoeren, executable maken
– een nieuw bestand bijmaken

Je kan ook het onderdeel “Data” openklikken, maar dan …
De “verkeerde klik” is op alles wat onder “Data” zit, in mijn geval Changes.txt, README.md, License.txt enz..

Dus: als je die tekstbestanden edit van buitenaf kan je eigenlijk de hele programmeeromgeving gebruiken …

Ps:
Soms werkt Gambas niet als verwacht omdat er bepaalde onderdelen niet mee geïnstalleerd zijn.
Geprobeerd gambas3 te vervolledigen om van de fout van het laden van stockpi-lib af te geraken.
sudo apt install gambas3*
fout blijft…

Die Pi5 is een tijdje blijven liggen, nu probeer ik eerst een upgrade:
sudo rpi-update
fout blijft…


Uitwijkmogelijkheid:
– van broncode compileren (kan wel wat duren op een Pi..)
– De ontwikkelaar van Gambas werkt met Ubuntu denk ik, en er bestaat een ubuntu voor Raspberry Pi: https://ubuntu.com/download/raspberry-pi.
Continue reading

Project open geeft foutmelding

Ik kan mijn project niet openen, de foutmelding zegt iets over bepaalde forms die niet in mijn project zitten, iets met FWelcome en zo.

De oorzaak bleek een fout in het .project bestand, die veroorzaakt was door een git merge conflict. Er stond code in met === enz, eens die verwijderd werkte het terug.

De Gambas IDE foutmelding had dus iets moeten zijn als “invalid .project file”.

gambas3 verdwenen na update openSUSE

Gambas3 is verdwenen …
– uit de repo’s van opensuse Tumbleweed
– uit het development menu na de zypper dup update van openSUSE Tumbleweed;
Gambas3-ide komt niet voor bij software, maar de andere onderdelen als de runtime zijn wel (nog) aanwezig, bv:

gambas3-runtime - Gambas runtime interpreter

Version:
3.19.3-1.2
Build Time:
Wed 03 Jul 2024 01:46:34 PM CEST
Install Time:
Fri 05 Jul 2024 05:25:44 PM CEST
License:
GPL-2.0-or-later
Installed Size:
2.2 MiB
Download Size:
0 B
Distribution:
home:munix9 / openSUSE_Tumbleweed
Vendor:
obs://build.opensuse.org/home:munix9
Packager:

Architecture:
x86_64
Build Host:
reproducible
URL:
https://gambas.sourceforge.net/
Source Package:
gambas3-3.19.3-1.2
Media No.:
0
Authors:

Andere versies/repo’s

In de education repository is gambas 3.14 aanwezig, dus die repo aanzetten zou een mogelijkheid kunnen zijn als een oudere versie volstaat.

In de home:Henry15ea Community is versie 3.18.1 aanwezig.

Andere openSUSE versies

In openSUSE 15.5 waren de updates gebeurd tot 2024-07-28
OpenSUSE 15.5: Gambas3 v 3.19.3
. Nu in Yast, Software Management staat alles van Gambas3 “rood”; ik heb de hele gambas3 lijst van programma’s “protected” gezet.

In openSUSE 15.4 in Yast staat alles van Gambas3, versie 3.18.4 “rood”.

Gambas3 is niet meer terug te vinden in de repo waar het uit geïnstalleerd is (obs:/:build.opensuse.org/home:munix) Zie ook software.opensuse.org

Over het verdwijnen uit de munix repo is nergens iets te vinden op dit moment.

Het heeft blijkbaar met openSUSE (of de – versie) te maken …

Op de website van gambas is niets abnormaals gemeld.

Vertrek van de bron
Mogelijkheid: de broncode van gambas afhalen en zelf compileren tot werkend programma.
Dat lukte op deze manier nog met versie 3.19.90 (20-8-2024).

Listbox_Click, Message.Question, Listbox.Remove

OpenSUSE-KDE-Plasma Gambas 3.19.3 qt5

Een eigenaardig feonomeen: ik laat de gebruiker op de listbox klikken, waarop gevraagd wordt of hij de betreffende listbox lijn (aangeduid door Listbox.index) wil verwijderen. Zo ja, verwijder ik die met Listbox.Remove(Listbox.Index).

Mijn voorbeeld: de listbox (Mode: Single) bevat 1 lijn. Ik klik op knop 1.

Code:

Public Sub lsbxError_Click()
  Dim i As Integer
'  
  i = Message.Question(lsbxError.Index & ": " & lsbxError.Text, "Clear", "Clear All", "Cancel")
  Debug i
  Select i 
    Case 1
      lsbxError.Remove(lsbxError.Index)
    Case 2
      lsbxError.Clear
    Case 3
    ' else do nothing
  End Select
'
End

Na het verwijderen van de lijn krijg ik een nieuwe vraag met een lege tekst en als index -1. Als je nog eens op Clear klikt, krijg je een foutmelding Out of bounds
.. op de lijn van de Remove; het gaat blijkbaar over de index.

Ik merk op (bij meer elementen) dat de listbox na het verwijderen een ander item selecteert (zonder dat ik dat expliciet vraag), dat ik dan ook niet meer kan kiezen voor verwijderen.
Ik kan de fout blijkbaar vermijden door een “unselect” toe te voegen:

Public Sub lsbxError_Click()
  Dim i As Integer
  '
  i = Message.Question(lsbxError.Index & ": " & lsbxError.Text, "Clear", "Clear All", "Cancel")
  Debug i
  Select i 
    Case 1
      lsbxError.Remove(lsbxError.Index)
      lsbxError.UnselectAll()
    Case 2
      lsbxError.Clear
    Case 3
    ' else do nothing
  End Select
'
End

en de “index” fout kan ik vermijden door op voorhand een voorwaarde toe te voegen:

Public Sub lsbxLog_Click()
  Dim i As Integer
  
  Debug lsbxLog.Index
  If lsbxLog.Index >= 0 Then
    i = Message.Question(lsbxLog.Text, "Clear", "Clear All", "Cancel")
    Select i
      Case 1
        lsbxLog.Remove(lsbxLog.Index)
        lsbxLog.UnselectAll()
      Case 2
        lsbxLog.Clear
      Case Else
        ' else do nothing
    End Select
  Endif
  
End

Raspbian 11: $EDITOR gezocht

Editor of $EDITOR?
Een van de eerste dingen die opvallen na installatie van Gambas3 op de Raspberry Pi met OS Raspbian GNU/Linux 11 is dat Gambas naar de “Editor” vraagt bij het openen van een bestaand (git-)project:

Please set the $EDITOR environment variable with your favorite graphical text editor. Some version control commands need it

Dit heb ik opgelost door de volgende lijn toe te voegen aan /etc/profile.
export EDITOR=/usr/bin/mcedit

Select-editor
De .bashrc oplossing zoals andere Linux distributies (bv OpenSUSE Gambas opstart set $Editor) werkt hier niet op Raspbian.
De Raspberry Pi heeft zijn eigen tool voor het instellen van de editor (waarvan het resultaat niet herkend werd door Gambas), het commando

select-editor.

Daarna krijg je een keuzemenu met genummerde mogelijkheden, en kan je met een cijfer je keuze maken, bv 1. Nano.
Als je zelf bv al midnight commander geïnstalleerd had, komt mcedit ook voor in de keuzelijst.
Select-editor toont helaas niet wat de huidige keuze is.
Na de keuze zet select-editor een verborgen bestand .selected_editor in je home direoctory, met daarin
SELECTED_EDITOR="/usr/bin/mcedit"
Ik vermoed dat het bij de volgende start/login gelezen wordt.

Of toch niet?
Maar Gambas blijft de $EDITOR variabele vragen, zelfs na de volgende login. 
Ik weet dat de keuze aktief is door een test met crontab -e.

Het bestand ~/.bashrc bestaat ook hier, en ik voeg toe: 
EXPORT EDITOR=/usr/bin/mcedit
maar op geen enkele manier (met aanhalingstekens, zonder, met $, zonder..) werkt dat.
(m.a.w. Gambas3 blijft de vraag stellen).

Ik probeer de volgende lijn  toe te voegen aan /etc/profile:
export EDITOR=/usr/bin/mcedit
(sudo nodig).

Na herstarten op de commandline 
echo $EDITOR
/usr/bin/mcedit

Deze keer ok!

Fout in Library

Door een fout in een library kreeg ik in mijn applicatie (het programma dat die library gebruikte) fouten die ik niet begreep.

Library:

ExampleObject
– id
– SomeExternalId
– otherdata

In de library zat ook een module om de gegevens te bewaren in- en op te vragen uit de database.

Testprocedures in mijn library konden perfect een ExampleObject maken in de de database bewaren.

Mijn eindprogramma niet.

Als in in mijn eindprogramma directe sql code schreef, ging het daar wel.

De fout zat in het ExampleObject in de loadFromDb code.

If resDb.Available
$lId = resDb!id
- $lExternalId = resDb!Xternal_id

–> ipv resDb!External_id

In mijn applicatie deed ik eerst een controle op het bestaan van het order, waarbij die loadFromDb code gebruikt werd.

Verder had ik die load code nog nooit gebruikt (applicatie is nog in ontwikkeling), dus ik was die fout nooit tegengekomen.

Deze fout kan normaal niet voorkomen want ik maak altijd eerst de velden in de databank aan, en genereer daarna de persistence code met de dbInfoCode tool.

Dit veld was nadien toegevoegd, en deze lijn manueel toegevoegd. In het vervolg ga ik langs die tool en knip/plak de gegenereerde code …