Classic Computer Magazine Archive COMPUTE! ISSUE 154 / JULY 1993 / PAGE 66

Visual Basic 2.0. (Microsoft's program development software) (Software Review) (Evaluation)
by George Campbell

The improvements to this development system keep it the preferred choice for Windows programmers who value ease of use and extendible power.

Microsoft brought about a revolution when it introduced Visual Basic 1.0, making Windows programming accessible to just about anyone with some BASIC programming experience. With the introduction of version 2.0, programmers get even more of a good thing.

Like version 1.0, VB 2.0 gives you a quick way to design the interface for your Windows programming project. Since interface design has always been the most difficult part of programming for Windows, using VB lets you get down to the business of the working part of your program with very little delay. You simply draw your interface on the screen, much like using an object-oriented paint program, and then write code to tell the program what to do when something happens. For example, if a user clicks on a command button in your program, you need only write the code for that button click. List boxes, text-editing windows, and all other interface objects work in the same way.

This event-oriented programming style is the key to VB's ease of use. Since you write less code to make your program work, you can concentrate on the important code, rather than on code that simply displays your program. Using language syntax familiar to all BASIC programmers, VB makes writing simple programs fast and easy. While Windows programming was once the province of dedicated C or C++ experts, anyone willing to learn some new rules can use VB 2.0 to create professional-quality Windows applications and utilities. Since you can also access most of the commands embedded in the Windows API, you can even extend VB far beyond its own internal statements.

There are two VB packages: Standard and Professional. The Standard Edition, designed for casual or personal use, lists for $199. The Professional Edition, listed at $495, includes enhancements more advanced programs need. You can begin with the Standard Edition and upgrade if you want. Both packages have good documentation and extensive online help. An online tutorial and plenty of sample code and applications also ease the transition from DOS programming.

Both editions offer improved performance over the original VB. Programs generally run about 20 percent faster. A program's EXE file is now smaller, although the VBRUN200.DLL runtime library needed for all programs has grown. The program design environment is also improved; you now get a separate window for setting the properties, like color, fonts, and size of objects (such as command buttons, list boxes). Since this window can always be onscreen, setting an object's properties is fast. An icon-based toolbar also makes programming easier--you click on an icon to carry out most functions in the development environment.

New graphics controls let you insert bitmapped images in your program or draw lines, boxes, and circles without using as much precious Windows memory as needed with version 1.0. The program also offers support for Windows OLE (Object Linking and Embedding) plus a spreadsheetlike grid control from the earlier Professional Toolkit. You also get support for the Multiple Document Interface (MDI), a huge array library for arrays larger than 64K, and tools to create automated installation systems for your applications.

Other programming tasks, too, get a boost, with improved debugging features like watch and break expressions. You can also select multiple controls and set common properties for all of them in a single step. A new variable type, called Variant, can substitute for any variable type, such as Integer or String; and you can shift between variable types automatically when needed. Using Variant, you don't have to convert a numerical variable to a string variable to display it in a text area onscreen.

With the Professional Edition, you get additional tools, such as a communications module, a help compiler for creating full-scale hypertext help systems, support for the MAPI E-mail system, ODBC database libraries, and more. Custom controls available only in the Professional Edition include a group of 3-D controls like command buttons and check boxes, an animated command button, access to the Windows Common Dialog windows, multimedia controls, controls specific to penbased computers, plus a handful of other useful additions. For programming professionals, the additional features are well worth the cost.

Overall, the additional features and improvements in both VB 2.0 editions are very welcome and help keep VB well ahead of competitors like GFA Basic and Turbo Pascal for Windows. It's still by far the easiest development system you can find for Windows, and it's a pleasure to work with.

That said, however, VB is not the be-all and end-all for Windows programming. A number of limitations keep it from becoming the only language Windows programmers need. First, its inability to use Windows API functions that require callbacks keeps VB programmers from accessing some important Windows tools, such as setting printer options without user input. Further technical limitations include an inability to use pointers to memory locations and a requirement that a runtime library be included with each program. While VB can use Dynamic Link Libraries (DLL) to extend the language, it cannot create them--a particularly annoying limitation for advanced programmers, who must turn to other languages to create modular extensions to VB.

Then, too, while Microsoft fixed some bugs that plagued VB 1.0, it introduced some new problems in 2.0. Especially irritating is a bug which sometimes causes programs that run perfectly in the development environment to crash after being compiled. There's an easy way to work around this bug, but it's a bother. A bug in the Professional Edition's Common Dialog tools makes the Printer dialog difficult to use, requiring additional code to change the default printer from within a VB program. Microsoft acknowledges these problems and offers work-around solutions, but the company apparently has no plans to issue an interim version of the language.

A final limitation can cause problems for some users. While you can effortlessly display bitmapped graphics onscreen, it's very difficult to send them to the printer. Indeed, there's no direct method in VB itself to print graphics and text on the same page. Printing bitmaps means using a complicated set of Windows API commands and, even then, it's almost impossible to print graphics on a PostScript printer without purchasing an add-on library from another source.

Fortunately, an entire industry has already grown up around VB. Vendors like Crescent Software and MicroHelp offer extensive add-on libraries. These libraries, which become part of the VB development environment, extend the language and fill in the gaps Microsoft left. VB's popularity also means that support on forums such as MSBASIC on CompuServe is excellent, with many advanced users offering solutions for VB problems and even free add-on libraries. Microsoft, too, is active on the CompuServe support forum, offering solutions for many problems and answers to tough technical questions.

All in all, Visual Basic 2.0 is the ideal way to get started in Windows programming. Its ease of use and extendible power may make it the perfect platform for most programmers, especially for creating uncomplicated applications and utilities. If you have any desire to create personal or professional applications for Windows, definitely look into this development system.