[Gambas-user] Really basic basics

Rob sourceforge-raindog2 at ...94...
Fri May 20 14:42:55 CEST 2011


On Friday 20 May 2011 06:08, j h wrote:
> For example a simple program
>  has a window with a Valuebox, a button and a slider.   How do i program
>  it so when i press the button the value of the slider is displayed in
>  the valuebox? If anyone can carefull explain how, not just write the
>  code, it would really help me get going! Thanks

Fabien already posted the code, but as far as "how" goes:

How you actually do it in the IDE:

Double click the button, it'll create a Sub (subroutine) for you, and in 
that subroutine you write the one line of code that takes the value of the 
slider and puts it in the valuebox.  Press F5 and it'll compile and run 
your program.

How it works:

The button, slider and valuebox are all "objects".  This is how most 
languages work now: instead of just variables, the things you see on the 
screen are self-contained objects with their own code ("methods", though 
few languages actually use that term in the code) and variables of their 
own (most of which are called "properties").

When the user clicks the button, an "event" is generated.  There was 
nothing like this in Sinclair BASIC and Amiga BASIC had only a little of 
that; the closest thing in 8- and 16-bit computing was the "interrupts" 
used in assembly language to jump to a particular section of code when the 
user pressed a key.  The OS gets the mouse button click, the windowing 
system determines the mouse is over your button, and sends the event to 
Gambas.  The Gambas interpreter checks to see if you have code to run when 
that event happens, and runs it for you, so all you have to think about is 
what happens next.

In a 1980s BASIC program, you would have had a loop waiting for input to 
happen.  In Gambas, this is done by the interpreter (and much more 
efficiently), not your own code.  Event handlers you write, like 
Button1_Click in Fabien's example, replace the big lists of if/thens we 
used to write back then to figure out what the user did and take action 
based on it.

Coming from totally procedural code on a single-tasking system like 
Sinclair BASIC, object-oriented programming with event handling can take a 
while to grasp.  VB, Javascript/AJAX, and most graphical programming in 
Java, C/C++, Python, etc. all work the same way nowadays, so once you 
figure it out in Gambas you'll probably be able to do it in any modern 
language you learn.

Rob




More information about the User mailing list