Ubuntu 12.04 LTS naar 14.04 zonder Gambas2

Op Ubuntu 12.04 draait Gambas2 vlot en snel. Bij een upgrade naar 14.04 krijg je heel wat nieuwe softwareversies; maar wat gebeurt met de geïnstalleerde Gambas2 (2.23) ?

Gambas3 is immers niet zomaar een nieuwe versie van Gambas2 als bij een nieuwe Firefox versie; sommige fundamentele zaken zijn veranderd, en je ontsnapt er niet aan om de broncode van programma’s aan te passen voor gebruik in Gambas3.

Na installatie van de upgrade krijg je de vraag om oude softwarepaketten te verwijderen; zo’n 200-tal zijn niet meer nodig, een 120 worden aangeboden om te verwijderen met een klik.

Kijk even naar de “Details”, in de alfabetische lijst ben je vrij snel bij de “g” van Gambas. Gambas2 staat aangeduid om te verwijderen! Je kan kiezen voor “behouden”.

Daarna is het computer herstarten. Gambas2 IDE, en de in Gambas2 gemaakte applicaties (met hun icoon op de desktop) werken nu nog.

ps: Ik weet niet hoe het zit in andere distributies; op openSUSE heeft de combinatie Gambas2 en Gambas3 lang goed gewerkt (nog op dit moment september 2014).

Gambas3 start niet meer op na upgrade openSUSE 13.1: omzeilen

Kort:

Probleem na upgrade van openSUSE 13.1: gambas3 start niet meer op.

openSUSE 13.1 – Gambas 3.5.4-3.1 na upgrade: “unable to find startup file”
(of start met commando gambas3: “KDEInit could not launch ‘gambas3.gambas’: Could not find ‘gambas3.gambas’ executable)

Oplossing: installeer van de home:munix9:gambas repository (** Beschrijving om probleem op te lossen/te omzeilen)

Probleem-beschrijving

/usr/bin/gambas3
gbx3: unable to find startup file

Er zijn gambas2 en gambas3 files te vinden in:
/usr/bin
/usr/share

cyb@linuxbox:/usr/bin> ls gb*
gba2 gba3 gbc2 gbc3 gbi2 gbi3 gbr2 gbr3 gbs2 gbs2.gambas gbs3 gbs3.gambas gbw2 gbw3 gbx2 gbx3

cyb@linuxbox:/usr/bin> ls gamb*
gambas2 gambas2-database-manager.gambas gambas2.gambas gambas3

en

:/usr/share> ls gamb*
gambas2:
examples help info

gambas3:
control examples gb.sdl help icons info

en dan nog wat links en iconen en zo.

Info: opensuse 13.1 / 64 bit / KDE 4.11.5/gambas 3.5.4-3.1
Repository: OpenSUSE / Education.
Geen beschrijvingen op web gevonden op dit moment (16/7).

Gambas3 komt voor in 3 repositories: educational, home:ccgx en home:munix9:gambas. (software.opensuse.org/package/gambas3)
Ik probeer om te schakelen naar home:ccgx , wat gambas 3.5.4-4.2 installeert.
Maar dat werkt evenmin; exact dezelfde melding “unable to find startup file”, na:

  • 1. de-installeren- alle bestanden ivm gambas3 en gb3 zijn weg in beide directories;
  • 2. uitschakelen softwarebron en inschakelen andere softwarebron;
  • 3. opnieuw installeren

Sommige bestanden hebben een grootte van 0, en bij het starten van gbi3 krijg ik foutmeldingen.
(zien helemaal onderaan *)

** Beschrijving om probleem op te lossen/te omzeilen:

Verander repository naar home:munix9:gambas

Je kan ook via software.opensuse.org zoeken op gambas3; daar heb je de mogelijkheid tot “1-click” install. Daarbij worden volgende repositories toegevoegd:

  • http://download.opensuse.org/repositories/home:/munix9/gambas/openSUSE_13.1/
  • http://download.opensuse.org/repositories/openSUSE:/13.1/standard/

Deze keer is het goed; de “munich” repository installeert wel een versie die opstart.
in Yast 18/7: Gambas 3.5.4-2.2 Build time Sat 12 Jul 2014 09:59:16 PM CEST
Deze versie kreeg (een update) updates:
22/7/2014 Gambas 3.5.4-4.1 Build time Tue 22 Jul 2014 02:06:39 AM CEST
23/7/2014 Gambas 3.5.4-5.1 Build time Tue 22 Jul 2014 08:55:53 AM CEST
06/8/2014 Gambas 3.5.4-5.2 Build time Wed 30 Jul 2014 03:50:31 PM CEST
12/8/2014 Gambas 3.5.4-5.3 Build time Mon 06 Aug 2014 03:25:52 PM CEST
21/8/2014 Gambas 3.5.4-5.4 Build time Thu 21 Aug 2014 12:14:22 AM CEST
22/8/2014 Gambas 3.5.4-5.5 Build time Fri 22 Aug 2014 01:11:56 AM CEST
22/8/2014 Gambas 3.5.4-5.6 Build time Sat 23 Aug 2014 03:37:15 AM CEST

18/9/2014 Gambas 3.5.4-5.10 Build time Thu 18 Sep 2014 05:56:46 AM CEST
23/9/2014 Gambas 3.5.4-6.1 Build time Sun 21 Sep 2014 08:01:17 PM CEST
23/9/2014 Gambas 3.5.4-6.3 Build time Wed 24 Sep 2014 03:26:56 PM CEST (6.2 gemist?)
29/9/2014 Gambas 3.5.4-6.4 Build time Mon 29 Sep 2014 07:52:39 PM CEST
07/10/2014 Gambas 3.5.4-6.5 Build time Mon 06 Oct 2014 04:57:15 PM CEST

Regelmatige updates blijkbaar, niet slecht dus!

Update 22/10/2014:
Als ik na een niet-werkende gambas3 uit de education repo, nu die uit de munich repo probeer te installeren krijg ik een foutmelding op de “ports” repositories:
ports/
Ports/extra/
Update/ports/

Ik heb die ge-deselecteerd, en de installatie verdergezet.
Lijkt te werken.

Continue reading

openSUSE 13.1 – Gambas 3.5 upgrade probleem: omzeild

openSUSE 13.1 – Gambas 3.5.2-1.4 upgrade probleem; omzeild.

Bij upgrade naar Gambas 3.5.2-1.4 op OpenSUSE kan een probleem opduiken, waarbij Gambas3 niet meer start. Mogelijk heeft het te maken met de oorspronkelijk geïnstalleerde versie van het Munich project. Daar ontbraken de voorbeelden van de programmeeromgeving, wat deed zoeken naar een andere versie. De Educational repository van openSUSE werd geactiveerd, en die deed een “upgrade” van 3.4 naar 3.5, waarbij een aantal componenten echter niet meer voor handen bleken (uit de foutmeldingen).

Enkele opeenvolgende foutmeldingen op de commandline:

gambas3
Cannot load class ‘Action’: Bytecode too recent. Please upgrade Gambas.

gambas3
gbx3: unable to find startup file

gambas3
/usr/bin/gambas3: No such file or directory

Aan de laatste ziet u al wat ik deed; ik verwijderde met de package manager yast heel gambas3 (zoek op “gambas3” – laat gambas2 staan als je die wil houden).

Daarna gambas3 terug geïnstalleerd van de education repository, en Gambas 3.5.2 start vrolijk op.

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

KDE 4.8.5 en Gambas2

Opgemerkt in Gambas2 op KDE 4.8.5 (opensuse 12.2): geen icoon in bovenrand venster en taakwisselaar

FMain: icoon is ingesteld op een png file in de properties, icon van FMain.

In de IDE toont de bovenrand ook dat ingestelde logo.

Start applicatie vanuit IDE: het FMain venster heeft niet het gekozen icoon, maar het algemene X icoon.

Gecompileerde applicatie: ook geen icoon in vensterrand.

In KDE 4.4.4 nog geen probleem.

Het kan wel zijn dat de voorwaarden waaraan het icoon moet voldoen in deze KDE versie “strenger” zijn geworden; en dat het gebruikte icoon vroeger ook al niet voldeed aan de standaard.

Ter vergelijking, dit is hoe de gambas IDE zelf* eruitziet (normaal met icoon):

KDE 4.8.5:

* (de Gambas IDE is zelf een gambas programma).

Ps: in Gambas3 werkt het wel.

Een beginners-gids voor Gambas, aangepast aan versie 3

Beginners guide to Gambas
Hoe eenvoudig kan het zijn:
* beginnersguidetogambas.com
Een Engelstalig werk, ook vroeger hier al vermeld, oorsprong VS.

Het was het eerste en enige werk dat in de begindagen van Gambas 1 en 2 te vinden was, en onmisbaar voor elke beginner.

Het mooie is dat deze uitgave bijgewerkt is tot versie 3 van Gambas.

Er zijn nog een paar extra’s:

  • Gambas3_Examples_not_edited
  • BGG_Projects_by_Chapter
  • GambasFormControlsReference (OpenDocument Sheet) zie hieronder:

    This table shows controls that we typically place on Gambas forms. They are valid for Gambas3 and Qt4 or GTK+, and most of them are also valid for

    Een overzicht van de controls, niet mooi maar wel handig. Engelstalig. Een kleine uitsnede:

Het lelijke op de site is de flash-box waar de downloads in zitten, maar dus:

http://beginnersguidetogambas.com/

Gevonden dankzij een tip van Jon Nicholson

Standaard leeg project

Project Type: Graphical application.
Options:

  • Internationalisation
  • Database access
  • Settings files management

Name: EmptyProject
Title: Empty Project

FMain: Menu met

  • File: Quit
  • Help: About, Changes, License

Form_Open: zet programma titel en versie.
doClose(): aangeroepen bij Menu/Quit (of scherm “Exit” button); kan afsluitende code aanroepen (wegschrijven toestand)

FAbout: About logo en tekst: naam plus versie.

FLicense: Toont License.txt
FChanges: Toont Changes.txt

Misschien nog een “test” menu-item dat alleen verschijnt als de conf file de verwijzing bevat:

[Mode]
Developer=”TRUE”

Op basis van die verwijzing zet je bij het starten van het programma het menu op visible.
Daaronder kunnen dat stukjes code getest worden die nog niet zijn vrijgegeven voor gebruik.
Opgelet: de gebruiker kan door het (buiten het programma om) wijzigen van zijn settings file dit menu dus aanzetten!

Logs en foutmeldingen op scherm

– Een eenvoudige weergave van log-meldingen en foutmeldingen kan in het (hoofd-)venster van het programma FMain in een ListBoxLog en ListBoxError. Door ListBoxLog.Add(“Opmerking”, 0) kan je de meldingen bovenaan toevoegen, de oude rollen weg naar beneden.

Fouten met Error Class

Een foutklasse CError kan vanuit het programma geinitieerd worden en de foutafhandeling waarnemen; bv kunnen de fouten naar een bestand gelogd worden, waarin elke regel voorafgegaan wordt door datum en tijd, en de foutmeldingslijn aangevuld wordt met de gebruiker System.User.Name

(laatste aanpassing: 08-2014)

Settings toepassing

Eenvoudige toepassing van Instellingen of configuratiebestand

Start een nieuw project met de naam ConfigSettings.
Kies bij Project Type, Options “File Settings Files Management”
Controle: Daardoor is onder project eigenschappen gb.settings aangekruist.

Vertrek op de nieuwe FMain form:
– maak een button bovenaan “btnShowConfig“.
– dubbelklik op de knop en vul er de volgende code in:

Message.Info(File.Load(Settings.path &/ Application.Name & ".conf"))
CATCH
Message.Error(Error.Text & " fout met config - bestaat niet? ")

= Een “run” levert normaal de foutmelding op.

Een beetje lager zet je een invultekstveld “txbxSetText1
Maak een nieuwe knop en zet die ernaast, met naam “btnSetText1” en zet in de code van click:

PUBLIC SUB btnSetText1_Click()

Settings["Instelling1"] = txbxSetText1.Text

END

= Een “run” doet niets nieuws lijkt op het eerste zicht. btnShowConfig geeft zelfde foutmelding. Je verlaat het programma.

= Een direkt daaropvolgende “run” met opvragen van btnShowConfig verrast misschien met je “instelling” van het tekstveld van de vorige “run”: onder een hoofding General (die je niet opgaf – standaard dus):

[General]
Instelling1=”txbxSetText1″

en een knop “ok”. Opeenvolgende “runs” tonen dat steeds de vorige ingevulde tekst, die je met btnSetText bevestigde, opgeslagen was.

Dat kan je terugvinden in de verborgen config directory:

/home/loginname/.config/gambas/

met de naam

ConfigSettings.conf

Open dat bestand met kate of een andere code-tekstverwerker en voeg een tweede “instelling” toe:

[General]
Instelling1="geheim"
Instelling2="nieuw"

Laat het programma lopen en vraag de instellingen op.

update 2012 11 30
Als je een configuratie-instelling opvraagt maar je bent niet zeker of die bestaat, geef je een standaardwaarde op die gebruikt moet worden bij ontbreken van de te zoeken instelling.

iHoogte = Settings[“General/Hoogte”, 120)

Als je wil testen of een configuratie-sleutel voorkomt of niet, zet je zelf “NULL” als alternatieve standaardwaarde.

IF isNull(Settings[“General/Runcounter”, NULL])
Settings[“General/Runcounter”] = 0
ENDIF