Working with VGA screens

Rioven

Active Member
Licensed User
Longtime User
Working on 480x800 screen resolution

Hi Erel,
Thanks a lot!
Here are what I did:
The form size was set to height=800 and width =480
Working on desktop IDE...all controls was sized relative to form size. I have doubled the text size on controls temporarily to get WYSIWYG then put it back to real text size and then compile for device normally.

Working with Device IDE I have done normally and runs WYSIWYG, but need work with subroutine code which doubling the control sizes and locations and activate this subroutine code on desktop before compiling for device normally.

I hope I'm doing the right way. Any other suggestions?
 
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User
The device IDE runs in the same mode as Forced QVGA applications.
I'm not familiar with your specific device but in this mode high resolution devices behave in the same way as low resolution devices by using a "pixel doubling" method.
You can create a simple application that shows the width and height of a form.
Compile it with the optimized compiler and run it on the device.
Compare the results with the results you get when running it from the device IDE.
 

Cableguy

Expert
Licensed User
Longtime User
HI guys...

Enabled by the power of modules and the getcontrols keyword...I was able to put together this very small example and module (AutoAdjust)...

Hope this will simplify the execution of QVGA designer apps NOT forced QVGA compiled, running in vga devices, enabling the auto resizing, and not have to have the config file and the default dll created in Forced QVGA compilation...

This also enables that VGA targeted app can also run, within some limits, in QVGA screens withou having to redo the entire design...Just chnage the "default width in this calculaation:
W=Round(Control(FormName).Width/240,1) '240 in QVGA Portrait Mode, 320 in QVGA Landscape Mode, Double those for VGA Modes..

The limitations are that controls such as comboboxes and NumUpDown will not resiize properly in most cases...But I may be wrong...

For the example I have posted both B4ppc source, and 2 exe's, one ForcedQVGA compiled, and one NOT QVGA compiled, but both Opti-complied...(hope to make sense...)

@EREL, so far no "general use" Modules have been released...I think this is the first one...But perhaps a new sub forum in the samples would be something to think about in the near future....
 

Attachments

  • AutoAdjust.zip
    29.2 KB · Views: 433
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User

agraham

Expert
Licensed User
Longtime User
Here's another way of adapting a QVGA app to VGA using the Door library. Visual Studio 2005 adds this code automatically to a form laid out for a QVGA device so that the form scales up when run on a VGA device. VS2005 also adds the same code, but with the 96s replaced by 192s, for a form laid out for a VGA device so it scales down when run on a QVGA device.

Obj1 and Obj2 are Door library objects. Args is a Door library ObjectArray.
B4X:
   Obj1.FromControl("Form1")      
   'Form1.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
   Args.New1(2)
   Args.SetValue(0, 96, "System.Single")
   Args.SetValue(1, 96, "System.Single")
   Obj2.CreateNew2("System.Drawing.SizeF" & Obj2.System_Drawing, Args.Value)      
   Obj1.SetProperty2("AutoScaleDimensions", Obj2.Value)   
   'Form1.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;   
   Obj1.SetProperty("AutoScaleMode", "Dpi")   
   'Form1.PerformAutoScale();
   Obj1.RunMethod("PerformAutoScale")
 

Rioven

Active Member
Licensed User
Longtime User
Agraham,
:sign0060: From your code, I have added controls on form1, Compiled, tested, and works perfectly on my 480X800 screen! Wonderful!
I'll implement this in all my apps.

Thank you again!

Regards,
 

berndgoedecke

Active Member
Licensed User
Longtime User
Best way for VGA and QVGA

Agrahm,
I've tested your code too. It works great on my VGA- and my QVGA-device.
Thank You.


Best Regards

berndgoedecke
 

showaco

Member
Licensed User
HI guys...

Enabled by the power of modules and the getcontrols keyword...I was able to put together this very small example and module (AutoAdjust)...

Hope this will simplify the execution of QVGA designer apps NOT forced QVGA compiled, running in vga devices, enabling the auto resizing, and not have to have the config file and the default dll created in Forced QVGA compilation...

This also enables that VGA targeted app can also run, within some limits, in QVGA screens withou having to redo the entire design...Just chnage the "default width in this calculaation:
W=Round(Control(FormName).Width/240,1) '240 in QVGA Portrait Mode, 320 in QVGA Landscape Mode, Double those for VGA Modes..

The limitations are that controls such as comboboxes and NumUpDown will not resiize properly in most cases...But I may be wrong...

For the example I have posted both B4ppc source, and 2 exe's, one ForcedQVGA compiled, and one NOT QVGA compiled, but both Opti-complied...(hope to make sense...)

@EREL, so far no "general use" Modules have been released...I think this is the first one...But perhaps a new sub forum in the samples would be something to think about in the near future....

hehe, works great for me. I'm making a weather plugin for wm6.5 called TitaniumWeather and needed to add a radar option. This worked very good for making my controls vga/qvga without doubling pixels causing distortion on my vga device. Thanks:sign0060:
 
Top