News archive
Other Applications
I'm a fantasy writer and have written my own editor in Gambas, so I do use a lot of external applications to provide functions alongside the process of writing.
Thesaurus, Spelling …and so on. It does a lot more but that's a blog for another time.
General Applications.…
- Read more 2 comments
Why use a shared heap, rather than pipes and sockets
Why use a shared memory/heap approach rather than using sockets or pipes, I would also say signals, but with the shared memory/heap library, signals are used to create the events when an application requests to be notified when a variable/symbol changes is created or deleted.
At the base level of the library , when polling or waiting on a queue, there is no delay, except for the Semaphore that protects queues, and variables/symbols. Even locking can be turned off.…
- Read more 0 comments
On Gambas Threads
In the tone of using shared heaps in a Gambas application I have attached a couple of examples, one of which is a tool for monitoring the available heap variables in real time
In order to make the process of using the library a little easier I have updated the farm version to 2.2.6, cleaning up a few of the examples.
If your interested in following along with the next few blog posts it would be good to update to the newer version. It requires gambas 3.20 or…
- Read more 0 comments
Gambas Exec Function.
So you can convert a image file from webp to png or a video file from webm to a mp4 and so on. There is a wealth of paramaters that you can feed to ffmpeg for all sorts of conversion options.
I was using the Gambas Exec function to do this in the format:
Code
- Read more 0 comments
What if we could use gambas tasks like they were threads!
Threads - Use the same text and data areas within an application, that is the code and static data share the same actual space, and are executed from the same actual space.
Also the Heap(Variables and such) space is also shared between threads, Making the use of IPC and pipes unnecessary for exchanging values, as variables and arrays are…
- Read more 0 comments
Gambas HTML Editor
Rather excited about this.
I've been attempting to build a WYSIWYG Html editor in Gambas for a while and I'm finally seeing the light at the end of the tunnel. (This may be a guy with a flame-thrower but I'm hopeful!)
Still a lot of testing to do but most of the basic functions are working as in the image below.
There are some limitations, and I find that clearing formatting still leaves some traces such as empty <Div> elements and so…
- Read more 2 comments
Part 10 - Quin's Gambas Framework - Input Validation
I once worked for a company that used a very complex input form. It had multiple tabs and a lot of input fields of all the normal data types.
If you were lucky, then it all worked well otherwise you would get an error messages stating: "An Error has occurred"
That's it. Not where or why, just that an error has occurred. It could take a long time to find the fault and often…
- Read more 0 comments
Part 9 - Quin's Gambas Framework - Form Management
My forms have 3 options that you don't normally see on input forms. I've added this functionality to my form templates to save on tedious input functions.
Clone record
On the main form toolbar, you have the standard Add, Change and Delete buttons with the addition of a Clone button.
This button will allow you to select an existing record and clone…
- Read more 0 comments
Part 8 - Quin's Gambas Framework - Form Objects
This toolbox class (Cls_Toolbox_Forms) is tied very much to the way in which I manage my input forms.
Most maintenance forms work in much the same way in that:
They display existing records in a list (all) or by some aligned criteria (filtered)
The ability to add and validate a new record or select an existing record to change or delete.
Most of the functions in my toolbox classes facilitate this process in some…
- Read more 0 comments
Happy New Year!
As I sit here in front of my computer in the final few hours of 2025 with a lot of different thoughts running through my mind - and all trying to get out at the same time, the first thought is to wish everyone a
HAPPY NEW YEAR!
My biggest, and most troubling thought: Gambas One going dark
Last Sunday night Dec 28th, I was sitting at my computer logged in and was just starting to…
- Read more 0 comments
Part 7 - Quin's Gambas Framework - SQLite
An SQLite toolbox.
This will consist of five classes, The parent class which will be a holder in the GUI for all of the child classes and exposes the primary connection Variable, $Con.
Cls_SQL (Parent)
Cls_SQL_Database 'This creates the connection to the SQLite database based on a variable provided in the Module AG.
If the physical database file is not…
- Read more 0 comments
Part 6 - Quin's Gambas Application Framework - Application Folders.
Part 6 - Quin's Gambas Application Framework - Application Folders.
Initially, I had a simple problem to solve.
I have some large icon sets that I used in my apps that came in both 16x16 and 32x32 sizes. The problem was that the identical picture icon in the 16 and the 32 had the same name.
The 16 sized icons were used for mainly treeviews, tool buttons and occasionally in gridviews. The 32s were for generic…
- Read more 0 comments
Part 5 - Quin's Gambas Application Framework - Parent classes.
Part 5 - Quins Gambas Application Framework - Parent classes.
Overview.
This relates to future posts of 'toolbox classes' so best covered early.
When you create a class you can use the statement: Inherits {name of class to inherit}
The 'Parent Class' shares any public declared variables with any child class that inherits it.
It shares any data contained in the variables and they are just automatically 'made available' when you create a new instance of a…
- Read more 0 comments
Part 4 - Quin's Gambas Application Framework - Module AV (Applicati…
Part 4 - Quin's Gambas Application Framework - Module AV (Application Variables)
Module AV contains some standard global variables but its main use is for application specific variables and subroutines.
The 'rule of thumb' is that if a variable is required to be shared across forms or a subroutine is called more than once from diffefent forms then
it's a good candidate for this module.
Note #…
- Read more 0 comments
Scripter can also emit web pages!
when linked with the name gbw3 it will emit web pages as it's output!
Fun fact they are actually the very same program. gbw3 is just a link to gbs3.
the program checks it''s name to know what to do!
Here is a web script
#!/usr/bin/env gbw3
<% dim s as string %>
<html>
<%print "hello world gambas web…
- Read more 0 comments
Scripter a simple practical use case : reminders
While scripter is not practical for most large applications, it is excellent for our toolbox, just add the script to your ~/bin directory and you are off to the races!
Let's write a little script to remind us when to do or check something. We will do a little popup message to remind us about something... of course you can just have your version of the script do anything at allLets say we want it to prompt us every few ( seconds, minutes or hours).
…
- Read more 0 comments
Reusing script classes and functions
When using a script, it is possible to access regular gambas libraries and components. But if your purpose is to create a completely portable script, that relies only on standard gambas components then sometimes it is better to include/reuse classes you have developed. In this example I am going to cover the use of the Linux readline library something I commonly use in my scripts to obtain input from users with the usual shell recall/search and edit capabilities.…
- Read more 0 comments
Part 3 - Quin's Gambas Application Framework - Module AG - Applicat…
Part 3 - Quin's Gambas Application Framework - Module AG - Application Global
I have a number of key variables that are common to all my projects and 5 utility subroutines.
The values of the variables obviously change from project to project but those variables that are then accessible to the rest of the Project.
Note # I'll expand on Cls_Toolbox_Folders in the next post as it relates directly to the GPic (Get Picture)…
- Read more 0 comments
Playground Examples are available
For those of you that want to do a little basic learning, the Gambas playground Examples and a basic learning environment is available by installing the scriptbuilder 2.2.2 from the gambas farm via the IDE. Examples were written by Charlie Ogier.
Screenshot at 2025-12-06 15-55-33.png
- Read more 0 comments
Part 2 - Quin's Gambas Application Framework - Module AE - Applicat…
Part 2 - Quin's Gambas Application Framework - Module AE - Application Errors
When an error occurs in Gambas while running from the GUI, the project halts and the line on which the error occurs is highlighted.
When you are running the compiled executable and you have found a bug deep in the bowels of your brilliant code, you get a 'not too helpful' message and the application closes.
Something along the lines of…
- Read more 0 comments
Part 1 - Gambas Application Framework
Part 1 - Gambas Application Framework.
Standard Caveat # Everyone has a 'programming style'. Two devs may write vastly different solutions to the same problem.
Efficiency aside, neither is 'wrong' as long as the code runs and the problem is solved. What follows is just my way of doing things.
What I've developed in Gambas over the years is a sort of framework. This framework allows me to develop applications quickly with 'less'(?)…
- Read more 3 comments
Before you Zip it up
There are some things you should do before you zip up a project source code to send to the forum showcase or testers helping you debug.
Not a technical requirement but more courtesy/professionalism. I've been guilty of most if not all of these in the past and it made me reflect on the individual steps required.
Delete the applicationname.gambas file if it exists. It's not required in your source code and it will just be baggage in your zip…
- Read more 1 comment
Names
I use two/three letter names for Modules and some often used variables and these are standard across almost every project that I make.
This is against 'best practice' but if you keep it to a minimum for the most frequently used elements in your applications, then it will increase your programming speed and debug time.
Module Names:
AG - Application General - Global variables and subroutines that are standardised across all of my…
- Read more 4 comments

