[Gambas-user] Newbie question * 3

johnf jfabiani at ...1109...
Tue Jan 3 03:26:33 CET 2006


On Monday 02 January 2006 17:58, karl at ...1303... wrote:
> Hi All,
>
> 	I've got a few queries for you guys:
>
> My System:
> AMD 2700+
> 1Gig RAM
> Running SuSe 10.0
>
> Gambas 'Release'  v1.0.11-0
> Gambas 'Devel' v1.9.21-0
> Both are the current SuSe builds from:
> ftp://ftp.gwdg.de/pub/linux/misc/suser-gbv/rpms/
>
> 1)  It seems that the release version of Gambas does not trim
> trailing whitespace from lines whereas the devel version does.  How
> can I stop the devel version from doing this? (in most cases it's
> there for a reason! :-) )
>
> 2)  Gambas seems to evaluate logical AND statements in a 'VB like'
> fashion rather than an 'other languages' kind of way.  By this I mean
> that it evaluates both operands even if the first is false (and
> therefore the whole must be false).  The result is that you end up
> with blocks of code nested more deeply than should be necessary. In
> the following example the inner conditional block is necessary
> because if colAttendee.Current.Selected is read while there is no
> selected item, an error is raised. Please note I'm just using this as
> a demonstration of what I mean by 'more deeply nested'.
>
> Eg:
> case a (current gambas))
> DIM colAttendee AS ColumnView
> IF colAttendee.Count > 0 THEN
>    IF colAttendee.Current.Selected = TRUE THEN
>        ' Do more things
>    END IF
> END IF
>
> case b ('ideal'))
> DIM colAttendee AS ColumnView
> IF colAttendee.Count > 0 AND colAttendee.Current.Selected = TRUE THEN
>    ' Do more things
> END IF
>
> My query is: Is this the expected behaviour, and if so, are there any
> plans to ever make AND not evaluate it's right operand if the left is
> false?
>
> 3)  The following code raises an error (and displays the "got foo"
> message) in my release  version of gambas (as you might expect :-) ),
> but none is raised in the devel version.  Is this a bug, or am I
> doing something wrong?
>
> PUBLIC SUB Form_Open()
>    TRY foobar()
>    IF ERROR THEN Message("got foo")
> END
>
> PUBLIC FUNCTION foobar() AS Boolean
>    Error.Raise("foo")
> END
>
>
> Thanks for reading,
> Karl Martindale
I'm a newbie too.  So new that I don't completely understand what you are 
asking.  But I do know that SUSE10.0 RPM's are far behind what's available.  
So please download the latest from sourceforge.  On my SUSE 10.0  I just had 
to insure that all the development libraries were available.  Make sure that 
you read the 'README' file on how to compile.  

It maybe that your issues will disappear - at least I hope so.
John




More information about the User mailing list