EZGUI compared to classic Visual Basic

There appears to be many programmers still clinging onto classic Visual Basic. Yes, I was not too happy to see the move to dot.net. So what choices do classic VB programmers have today ?

A lot depends upon what your needs are when it comes to your use of Visual Basic. If the drag and drop environment (ease of use during design) is the most critical to you, then seriously consider adding Powerbasic (see:  http://www.powerbasic.com ) to your toolbox. It is great for writing fast DLL’s, perfect for use with Visual Basic.

If your primary concern is to be able to continue using BASIC (VB.NET is not the Basic I am refering too), but you want more powerful ways to create an application with a smaller footprint than Visual Basic, but you just can’t let go of a full blown drag and drop environment of Visual Basic also with its support for ActiveX controls, then you might want to consider moving to PowerBasic, but then add the third party addon called FireFly (see:  http://www.planetsquires.com ) which is a visual designer which emulates visual basic, but is for use with Powerbasic. It has some support for ActiveX controls, but it won’t be as extensive as Visual Basic (meaning not all ActiveX controls may work with it). PowerBasic 10 does have full support for non-UI COM though, so you can use COM components directly which don’t require a visual display.

Now you may wonder why I mention these choices, especially FireFly, before mentioning my own EZGUI (which is an addon to PowerBasic) ?

Only a small subset of Visual Basic programmers will appreciate EZGUI and be able to work with it. Why ?

Most Visual Basic programmers are too attached to the VB drag and drop environment. No PowerBasic alternative will come close to what you have in Visual basic, when it comes to the ease of use of the drag and drop environment. FireFly, along with PowerBasic, is the closest you will get.

EZGUI is for coders, like myself. It does have a drag and drop visual designer, but it is very different than what you are used to with Visual Basic. If you are not ready for change when it comes to the development environment, then don’t even consider EZGUI.

EZGUI’s strength though comes from two areas. First it was designed specifically for use with PowerBasic. PowerBasic fully supports the long time BASIC language, with syntax very familiar to even DOS Basic programmers. In many ways the Powerbasic syntax is closer to QuickBasic than Visual Basic and there are a few slight differences in syntax with Visual Basic, but in the critical areas the syntax is very similiar. All the core BASIC commands are there.  EZGUI was written using PowerBasic and I am a long time Basic programmer myself (date back to QBasic and QuickBasic), so I know what the Basic language is suppose to look like. I have actually ported code from QuickBasic (actually PDS 7.1) withvery little change required (non-UI code of course).

EZGUI’s real power though comes from its runtime engine (DLL). The primary runtime DLL is only 700 KB in size and it contains the majority of the feature set of EZGUI. The second largest runtime DLL in EZGUI is its OpenGL 3D custom control (glCanvas) which is 255 KB in size.  Most applications can be written and only need the main runtime DLL. There are two other custom controls in separate DLL’s (Masked Edit is 25 KB in size and MCI control is 35 KB in size). You can have the entire User Interface functionality of EZGUI with less than 1 megabyte of DLL’s.

Now the nice thing about EZGUI runtime DLL’s is that they are not COM DLL’s. You just copy and run. No need to register anything with the operating system. No OCX controls to distribute with your applications. With Visual Basic just to use some of the common controls or common dialogs requires additional OCX controls.

Now let’s compare the Visual Basic runtimes to EZGUI’s runtimes. (I have VB 5.0 Pro so figures below are for VB 5)

With VB 5.0 you have the following runtimes which may commonly be needed by many apps:

msvbvm50.dll - 1324 KB
comdlg32.ocx - 150 KB
comctl32.ocx - 595 KB
comct232.ocx - 161 KB
mscomct2.ocx - 633 KB
richtx32.ocx - 208 KB

This comes to a total of 3071 KB !  The EZGUI runtimes are one third the size of the VB runtimes and those VB runtimes only provide you with the basic features of VB such as the common controls, common dialogs and richedit control.

Now EZGUI provides you with all the standard controls, most of the common controls (ie. listview,  treeview, toolbar, etc) and the richedit control (versions 1.0 to 4.0) plus a whole lot more.

Let’s look at the different Form types and Controls  and other UI elements EZGUI provides:

Forms

 Standard Form
 MDI Parent Form
 MDI Child Form
 Pager Form
 Rebar Form

Standard Controls

 Button Control
 CheckBox Control
 ComboBox Control
 Frame Controls
 Icon Control
 Label Control
 ListBox Control
 Picture Control
 Radio (Option) Control
 ScrollBar Control
 Text (Edit) Control

Built in Colored Button Support (OwnerDraw)

 2D Colored Button Control
 3D Colored Button Control
 3D Colored Elliptical Button Control
Common Controls

 Animation Control
 Calendar Control
 DateTime Control
 Drag ListBox Control
 Listview Control
 Pager Control
 Progressbar Control
 Rebar Control
 Statusbar Control
 Tab Control
 Toolbar Control
 ToolbarStrip Control   
 Tooltip Control
 Trackbar Control
 Treeview Control
 UpDown Control
Other Controls 

 MDI Client Control
 Rich Edit 1.0 Control
 Rich Edit 2.0 Control (up to 4.0)
 Custom Controls 

 Canvas Control plus 2D Sprites
 GLCanvas Control plus 2D Sprites and 3D OpenGL  
 Drag Handle Control
 Files Listbox Control
 Masked Edit Control   
 MCI Control (multimedia) 
 Property Listbox Control
 Shape / Hotspot / SplitterBar Control   
 Turtle Graphics Control (vector graphics)
Common Dialogs 
 Browse Folder Dialog
 Color Dialog
 Find Text Dialog
 Font Dialog
 Open File Dialog
 Page Setup Dialog
 Printer Dialog
 Save File Dialog

Message Boxes 

 Message Box
 Extended Message Box

Just look at all the custom controls that are built into EZGUI !  You even get a 2D Sprite engine which can show/hide/move non-rectangular bitmap images (sprites), does image flipping, frame animation, alphablending , anti-aliasing and even collision detection. There is a property listbox control which you don’t have in Visual Basic. You even get OpenGL 3D in a custom control with a complete 3D scripting language. EZGUI supports the industry standard STL 3D model file format and can load a 3D model with hundreds of thousands of triangles in them in just a second or two.

EZGUI has a MCI control for playing videos, MP3, CD audio and MIDI. It has its own vector graphics engine in its Turtle Graphic control.

Now all of this would be amazing, for a runtime which is one third the size of your VB runtime, but there is more.

EZGUI has a print engine and a graphic engine. It can do advanced graphics such as rotating (360 degrees), scaling and alphablending all at one time. It comes with 22 image filters for drawing bitmaps. You can even save an image to a bitmap file. The graphics engine is integrated into EZGUI’s ownerdraw engine. ues EZGUI allows you to customize the look of many different controls. It has a simplified ownerdraw command set and a low level ownerdraw command set. Unlike Visual basic where you have to buy third partty controls to add new features, EZGUI allows you to create your own unique controls.

Not done yet !

EZGUI has its own built in drag and drop engine, so you can build your own WYSIWYG style applications. EZGUI comes with its own drag and drop visual designer for building applications (with a smart parser so you can use an external code editor of your choice) which was actually built using EZGUI itself. EZGUI even has its own drag handle control for building drag and drop apps. EZGUI can generate dynamically on the fly, Forms which are non-rectangular using a bitmap background with a transparent color. It can generate a very complex window region on the fly and fast. Even controls can have a complex window region to make them non-rectangular.

And oh, remember that the EZGUI runtime is one third the size of your common VB runtimes. So how does EZGUI pack all of this power into such small runtime DLL’s ? It was written using the PowerBasic compiler. The runtimes are not compress in any way either. This is the actual compiled size. If you run them through one of those DLL compression utilities they will be even smaller.

But I am not finished yet. EZGUI has more ! Yes more ! How about a low level subclassing engine so you can subclassing any control in your application? How about multithreading for non UI tasks ? EZGUI has a built in threading engine and you can easily have up to ten threads with support for critical sections. EZGUI has a game loop engine with precision timing. It has timers. It has private timers for controls. You can access the Registry. You can display the old style help files or the more current HTML help files.

Not done yet !

EZGUI has a DIB engine built in, so you can work at the pixel level with its Canvas control or even with a DIB bitmap directly. Write your own high speed image code using direct access to pixels.  You can read or draw directly onto a window DC and even the desktop (do your own screen print).

And there is more.

With EZGUI you don’t need use a lot of third party controls , since it can do so much for you. You can customize to your hearts content. You can even customize how the common dialogs look.  You can even custom controls using Themes (make theme aware controls). EZGUI can even handle working with multiple monitors.

Now the amazing thing about this, is not only the size of the EZGUI runtimes, but also their compatibility with all versions of Windows from Windows 95 to Windows 8 (yes, I said Windows 8). I have been testing many of these features of the EZGUI runtime with Windows 8 and they run flawlessly so far. EZGUI’s runtimes are intelligent. They poll the operating system to see what version it is and the provide features based on that version. If a version does not have a feature, EZGUI will either use an alternate method or simple ignore the task (so nothing crashes). The majority of features though will run even on Windows 95 (and all on Windows 8), including its Turtle Graphics engine, Sprite engine and 3D Open GL graphics.

With EZGUI (and Powerbasic) you can do things you never thought you could with Visual Basic and Powerbasic (non-UI code) is very compatible with much of your Visual Basic code.

Combine this amazing runtime with EZGUI’s own Visual Designer and you have a powerful combination. So if you can live with using a totally different Visual Designer front end and can learn an easy to use UI command set, you just may like EZGUI 5.0 Professional and you already know Basic, so you are half way there.

And if you wonder how powerful the PowerBasic compiler is, remember how many features are squeezed into EZGUI’s tiny runtimes and that it was written using PowerBasic (WIN32).

With Powerbasic, you can create amazingly fast DLL’s for use with your current version of Visual Basic, so you can maintain existing applications but with more options. Then for new projects you can use EZGUI along with PowerBasic and build Windows applications for the new generation of computers including x86 Windows tablets. EZGUI’s footprint is so small that it is perfect to building tablet software.

So take a closer look at EZGUI today (see: http://cwsof.com )