Op de officiële gambas blog staat in de aankondiging van versie 3.15.0 dat er een nieuwe gb.poppler component is die de oude gb.pdf vervangt. Ondertussen zijn 3.15.1 en 3.15.2 uitgekomen, en daar is nog sprake van een fix voor gb.pdf.
Monthly Archives: November 2020
compile gambas app van de commandolijn
Compileren: gbc3
Ga in de projectdirectory staan. Tik daar:
gbc3 -a
upd: moet blijkbaar kleine a zijn gbc3 -A
Uitvoerbaar programma:
Het uitvoerbare programma maak je door de bestemming/naam op te geven bij gba3:
gba3 -o ~/mygambasprog.gambas
Link op de desktop etc
zie vorige posts …
Icoon: http://gambas.copyleft.be/blog/archives/112
Werking gambas: http://gambas.copyleft.be/blog/uitvoeren
Source archive uitpakken, compileren en draaien: http://gambas.copyleft.be/blog/archives/148
Gambas en git
Gambas maakt in de laatste versies gebruik van git, en toont dat ook in zijn IDE.
Ook bij de ontwikkeling van Gambas3 wordt git gebruikt. Een overzicht op:
https://gambaswiki.org/wiki/howto/git
Maar Gambas bestaat van voor git, en als je git gebruikt met een Gambas project rijst de vraag:
Welke bestanden moet je opnemen in git?
Bij het werken met git kies je welke bestande je onder git toezicht zet, en lokale bestanden die niet nodig zijn voor de ontwikkeling bij een andere programmeur, hoeven niet/mogen niet mee opgenomen worden in git. Sommige daarvan zijn ook onzichtbare bestanden/directories.
Gambas zelf (sinds 3.6) maakt een .gitignore bestand aan, dat git vertelt wat moet genegeerd worden. Daarin bv .gambas, wat de gecompileerde versie is van je project (die zet je altijd beter buiten je projectdirectory want anders wordt die ook mee ingepakt als je een export .tar.gz maakt vanuit de IDE.
Ook andere dingen moeten niet meegaan: de .directory bv, die KDE gegevens bevat.
Voorbeeld van een .gitignore: versie5 , oudere versie1 en .gitignore van Gambas3 zelf …
Huidige (upd 09/2021):
#---- Gambas files to ignore (v5)
*.gambas
.lock
*~
core
core.*
vgcore
vgcore.*
.kdbg*
.*.prof
.lang/*.pot
.gambas/*
.settings
.startup
.list
.info
#----
.directory
.icon.png
Waarbij
- .directory en .icon te maken heeft met kde, niet met Gambas
- ~ zijn meestal tijdelijke hulp of backup bestanden, bv van de editor
- .lang/*.pot heeft te maken met de vertaling van je project
- .settings: heb ik al ondervonden als vervelend als die in de git repo terechtkomt omdat er ook “eigen” instellingen in staan als de vensters die je open had, plaats waar jij de executable zet (met de naam van je /home/user/..) enz.
.project komt niet voor in de .gitignore, maar die bevat ook zo’n lokale instelling: SourcePath=/home/username/… - …
- …
De .gitignore van het Gambas project zelf:
Makefile
Makefile.in
libtool
ltmain.sh
stamp-h1
warnings.log
.deps/
aclocal.m4
config.guess
config.log
config.sub
configure
install-sh
autom4te.cache
config.h
config.h.in
config.status
config.cache
compile
depcomp
missing
/m4/libtool.m4
/m4/ltoptions.m4
/m4/ltsugar.m4
/m4/ltversion.m4
/m4/lt~obsolete.m4
.libs/
*.la
*.lo
*.o
*.a
.dirstamp
*_moc.cpp
*.pot
*.mo
*.gambas
main/gb*/gb*3
DISABLED*
.startup
.settings
.info
.list
.action/
.jit/
**/.gitignore
app/other/MakeWebSite/gambas.sourceforge.net/*/
*~
Ongewenst sluiten tegenhouden
Een gebruiker kan per vergissing op het x teken duwen boven in de balk van het venster, als hij bv het venster wil verkleinen of vergroten. Dan sluit de applicatie onherroepelijk af.
Je kan in het Close event wel eindprocedures opnemen die data bewaren en verbindingen sluiten en zo, maar kan je ook de “Close” tegenhouden?
Ja dat kan
Maak ergens een boolean die bepaalt of het venster gesloten (m.a.w. het programma gestopt) mag worden of niet. Je kan die bv zetten als je bepaalde verbindingen of bestanden geopend hebt, processen gestart hebt enz.).
ps: Zorg dat je ook ergens een situatie voorziet dat die teruggezet wordt. Normaal zal dat zijn na het sluiten van die dingen door een normaal eind-bevel, met quit-knop of menu.
Stop Event
MMain Public bShowHasStarted as Boolean = FALSE ' indicates active use
Public Sub Form_Close() If MMain.bShowHasStarted Message.Info("Please stop all processes first (close files, connections etc) ") Stop Event Else doClose() Endif End
Settings[“sSlot/sKey”]=”value”
Terminologie
Een mooi voorbeeld van benoemen van de rubriektitels in het Settings bestand is “slot” en “key”. Slot is de titel, key is de variabele naam. Beiden zijn nodig om de waarde (value) op te vragen.
Ik probeer het bewaren van instellingen door middel van de module “Settings” een beetje te stroomlijnen, vooral in het kader van het bewaren van verschillende databank-toegang omgevingen waarin een gambas3 programma gedraaid wordt: ontwikkeling, test, ingebruik (development, testing, in production).
Veel van het gebruik van “Settings” zit vervat in deze code:
Dim sSlot, sKey as String
'
For Each sSlot In Settings.Keys
Print sSlot
For Each sKey In Settings.Keys[sSlot]
Print sKey & ": " & Settings[sSlot &/ sKey]
Next
Next
Een klasse kan helpen bij het beheren; bv CDataContext.
(wordt aan gewerkt)
In memorial: Domotiga
Spijtig genoeg voor iedereen die met Gambas3 en Raspberry Pi werkt, is Domotiga al een tijdje verdwenen, ik schat van ongeveer 2015. De website www.domotiga.nl ging ergens in de zomer van 2015 (mei?) over in de site van CyberJunky’s Blog, alter ego van een zekere Ron “RDNZL”, de auteur van Domotiga. Die naam herken je zeker als je op de Gambas mailinglist ingeschreven was, daar was hij erg aktief meen ik mij te herinneren, en daarmee ook een aanwinst voor Gambas gebruikers in het algemeen.
Op CyberJunky vond je nog links naar Domotiga en DomotiYii, maar ondertussen lijkt er enkel een wordpress reklamesite van één of ander netwerk op de domeinnaam domotiga.nl te staan.
Ergens las ik dat de maker van Domotiga zelf overstapte op een ander systeem voor zijn domotica toepassingen (ok, dat klinkt erg onwetenschappelijk) – ik zie op de cyberjunky github pagina allerlei “Home-assistant” werk.. dat terug te volgen is tot december 2016. Home Assistant draait op Python.
Je vindt nog wel resten van Domotiga terug, bv in web.archive.org, waar je op de about pagina kan terugvinden dat Domotiga startte als een eigen versie van ‘Misterhouse”.
De laatste updates aan de Domotiga github repository vermelden (op dit moment) “May 16, 2019”, dus mogelijk draait het hier en daar nog wel…