V6.86 (beta) is available

Erel

Administrator
Staff member
Licensed User
The next beta version is available, replacing the previous one (same location).
This version fixes several bugs including the inaccurate screen size which existed ever since v1.0. Thank you agraham for your help on this one.

There are some small new features:
- new keyword: FileFlush - flushes the file stream and writes the cached data to the file.
- Form.Visible - Read only property which can be used to tell if a form is visible.
- Labels text color changes to gray for disabled labels (this is actually a bug fix).
- Shorter syntax for declaration of multiple variables:
The following code:
B4X:
Dim x, y, z As Number
Will declare all three variable with the Number type.
The rule is that there must be only one type in the declaration line and it must be after the last variable.

The final version should be very similar to this one (and not so far away...).
 

Erel

Administrator
Staff member
Licensed User
Please send me an email if you are missing the download link.
 

moster67

Expert
Licensed User
Great work,

I am at the office but a quick question:

is it possible also to assign a value while declaring (everything in one line), for instance:

B4X:
Dim x as Number = 3
- Shorter syntax for declaration of multiple variables:
The following code:
B4X:
Dim x, y, z As Number
Will declare all three variable with the Number type.
The rule is that there must be only one type in the declaration line and it must be after the last variable.

The final version should be very similar to this one (and not so far away...).
 

agraham

Expert
Licensed User
fixes several bugs including the inaccurate screen size
Well almost! :sign0013:

There seems to be an off-by-two in the width in the desktop IDE :(. In the Designer, Tools->Screen Size for a new Form shows a width of 242 although the Form is actually 240 wide when run on the desktop. Pressing the Default button sets the width to 240 which makes the window 238 wide at runtime.

Also in the Designer the disabled width and height textboxes for a Form permanently show 240 and 264 regardless of the actual Form size - and anyway 264 is wrong for a default screen, it should be 268.
 

Erel

Administrator
Staff member
Licensed User
is it possible also to assign a value while declaring (everything in one line)
That is currently not possible.

Well almost!


There seems to be an off-by-two in the width in the desktop IDE
. In the Designer, Tools->Screen Size for a new Form shows a width of 242 although the Form is actually 240 wide when run on the desktop. Pressing the Default button sets the width to 240 which makes the window 238 wide at runtime.

Also in the Designer the disabled width and height textboxes for a Form permanently show 240 and 264 regardless of the actual Form size - and anyway 264 is wrong for a default screen, it should be 268.
Thanks Andy. Will be fixed. (Doh!)
 

Erel

Administrator
Staff member
Licensed User
Dim x, y, z As Integer, a, b, c As Boolean

This seems to work OK, is it intended to?
What do you mean with "work OK"? The integer type is only applied to 'z' and the boolean is only applied to c.
Compare these programs:
B4X:
    Dim x, y, z As Integer
    Dim a, b, c As Boolean
    Msgbox(a,x)
B4X:
    Dim x, y, z As Integer, a, b, c As Boolean
    Msgbox(a,x)
 

agraham

Expert
Licensed User
What do you mean with "work OK"?
Sorry, I misinterpreted the change that you had made as always applying a trailing type to a comma separated set of variables without an explicit type so changing the behaviour compared to 6.85. I assumed (always dangerous!) that the previous form was not accepted. I think it is potentially confusing to have both forms available

Dim x, y, z As Integer
Dim x, y, z As Integer, a, b, c As Boolean

where x is of Integer type in the first line and of String type in the second line.

By chance I tested the types of z and c in a code fragment using the second line and it appeared to work, I should have checked the other variables as well and then I would have seen my mistake.
 

Erel

Administrator
Staff member
Licensed User
I think it is potentially confusing to have both forms available
I tend to agree. Maybe it is better to apply the given type to all leading variables even if it is not the last type.
So this line will declare three integers and three booleans:
B4X:
Dim x, y, z As Integer, a, b, c As Boolean
Need to think about it a little bit more.
 

klaus

Expert
Licensed User
I will not use this new possibility, too confusing.
I will stay with
Dim a As Number, b As Number, c As Number

Even it's longer and somewhat boring to type, but it's clear.

Best regards.
 

agraham

Expert
Licensed User
I will not use this new possibility, too confusing..
Some of us however are already used to this which is why I misinterpreted the change.

In C# - int a, b, c; // three integers

and in VB.NET - Dim a, b, c As Integer ' three integers
 

klaus

Expert
Licensed User
I was used to VB6 where
Dim a, b, c As Integer
a Variant
b Variant
c Integer

Best regards.
 

Erel

Administrator
Staff member
Licensed User
I was used to VB6 where
Dim a, b, c As Integer
a Variant
b Variant
c Integer

Best regards.
This was my first approach as well. Actually I wasn't aware to the fact that they change it in VB .Net.

The problem I see with this syntax (besides being a little bit annoying) is that if a user intended to declare three numeric variables but mistakenly declared only the last variable, it will be very difficult for him to find out about this problem as the Variant variable (or string in Basic4ppc) will automatically be converted as required and he will get no error.
Here is one first example of this error: http://www.basic4ppc.com/forum/beta-versions/5494-performance.html
I believe that this is a very common mistake.
 

Zenerdiode

Active Member
Licensed User
I've just tried the download link and it's just timing out... :confused:

I'll try again shortly.

*Edit*

Ahem, (cough) I spoke too soon. :)
 
Last edited:
Top