************************************* * * * DB/C Newsletter * * February 1996 * * * ************************************* Editor's Notes This month's newsletter contains the text of the DB/C 9.0 announcement that is being mailed to all DB/C customers and resellers. Price information is included in the mailing and will be available soon via the Internet at ftp.swc.com and www.swc.com. don.wills@swc.com DB/C 9.0 Announcement Subject, Wills & Company announces the ninth major release of DB/C. This release incorporates several new features, including object-oriented programming features, 32 bit support for Windows 95 and NT, an integrated GUI development environment, support for advanced GUI controls, and support for TCP/IP programming. DB/C 9.0 contains all of the features that are commonly considered necessary for a language to be called an Object-Oriented Programming Language (an OOPL). These features are classes, inheritance, polymorphism and dynamic binding. The object-oriented features are implemented in a way that fits naturally to the DB/C language. And because DB/C has always been a dynamically linked language (there is no linker), there are no changes necessary in the procedures used for developing and running programs. DB/C 9.0 takes advantage of the speed and memory efficiencies available for 32 bit programs in the Windows 95 and Windows NT for Intel environments. DB/C 9.0 is also available for the Windows NT for PowerPC systems, most UNIX systems, and for the DEC VMS operating systems. The Fast Development Environment (FDE) included with DB/C 9.0 is a GUI-based integrated development tool. FDE contains the tools program developers use when creating and testing programs. The tools include: a text editor, a dialog editor, a menu editor, an icon painter, the DB/C language compiler, and the run-time with a graphical debugger. FDE is oriented around an application. An application consists of one or more programs. This list of programs is the central feature of the FDE. Source file dependencies are known by FDE. The "Bring up-to-date" function on the menu causes all .DBC files that are old to be recompiled. For example, if the application is currently up-to-date and one include file that is used in three of the programs is changed, then the "Bring up-to-date" function will cause only those three programs to be recompiled. All dependency tracking and updating is done automatically. There is no need for MAKE files or other manual dependency specification. The FDE has many features that make the programmer's job easier. Double clicking on a program in the list of programs causes the text editor to display that program. A menu function or speed key will compile that program. Errors are noted in a separate box. Double clicking on a line in the error box causes the text editor to display the offending source program with the cursor at the line that caused the error. The FDE dialog editor, menu editor and icon painter are used in developing GUI programs. Each of these tools is a simple mouse-based, point-and-click type program. When a dialog, menu, or icon is saved, the resulting file can be included directly in a source program. This include file contains the definition of a variable (using an INIT statement) that contains the full string specification of the dialog, menu or icon. This variable is used in the PREP statement that creates the dialog, menu or icon. The FDE run-time debugger is similar to the debugger of previous releases of DB/C, except that it is GUI based. One useful new feature is the ability to manipulate, load and save global variables. DB/C 9.0 provides support for several new features and enhanced GUI controls that are available in Windows 95. Here is a list of some of the new GUI features: . Icons . Tool bars . Controls grouped into folder pages (tab groups) . Multiline text edit boxes . Edit box controls with an input mask and output formatting . Popup menus . Icon push buttons . A status bar . Progress bars . Common dialogs (File Open, File Save, Choose Font and Choose Color) . Timers DB/C 9.0 contains a complete interface for sending and receiving messages using the TCP/IP communications protocol. TCP/IP actually consists of the TCP and UDP communications protocols. These two protocols are used on the Internet and on many corporate LANs and WANs. The comfile data variable and the send, receive and comtest statements are used to send and receive messages using TCP and UDP. In addition, an easy to use Domain Name Service (DNS) interface is also included in DB/C 9.0. DNS is used to translate an Internet address (such as dbc@swc.com) to an actual IP address (such as 199.3.63.34). The support for TCP, UDP and DNS is portable between all versions of DB/C 9.0 except for the VMS versions. The maximum record length and maximum character variable size is increased to 65500. Support for ASCII linefeed-delimited text files is available with the DATA parameter of the file, ifile and afile data definition statements. Image variables now support 1, 4, 8, 16 and 24 bit color depths. The draw statement is enhanced to allow drawing of XOR type lines with the LINE=*REVDOT operand. The ANYQUEUE and QUEUE 'queuevariable' events are now available in the trap statement. User defined verbs may now be up to 31 characters long. The clearlabel statement allows label variables to be cleared. The pushreturn statement allows a program label or label variable value to be pushed onto the return stack. The popreturn statement causes the label value at the top of the return stack to be copied to a label variable and removed from the return stack. When used in conjunction with the WITH NAMES operand of the record and list statements, the getname statement provides the programmer with the names of variables contained in the record or list at run-time. The setnull statement allows numeric and character variables to be set to the NULL state. This is useful in conjunction with SQL. The isnull operator may be used in expressions to test the NULL state of a numeric or character variable. A call statement with parameters may now pass label variables by prefixing the variable name with the ~ character. The initial keyword may now be specified on address variable definitions to allow the address of a previously defined variable to be stored in the address variable at compile time. The *pl, *ll, and *sl control codes may now be used in the send and change statements. The unlock statement has been enhanced to allow a single record to be unlocked in a file. The move statement of a list variable to another list variable causes each of the variables in the source list to be moved to the destination list. The makevar and makeglobal statements have been enhanced to allow image, device and resource variables to be created dynamically. The *LINEWIDTH control code is now available in the print statement to allow the width of printed lines to be specified. The rounding done by arithmetic statements has been changed in DB/C 9.0 to be compatible with the PL/B Standard. Use DBC_ROUNDING=OLD for backward compatibility. The precision of expression evaluation has been increased. Use DBC_PRECISION=OLD for backward compatibility. The DBC_KEYUMAP and DBC_KEYLMAP run-time options allow for translation of keystrokes in the keyin statement. Multiple libraries of .dbc files may now be used by specifying multiple -L=library parameters on the dbc command line. In the character mode versions of DB/C 9.0, PCL and PostScript output is supported with the L=PCL and L=POSTSCRIPT operands of the splopen statement. Single event and recurring timer support is available in conjunction with device and queue variables. An output translate table may be specified with the -m=filename parameter of the build and reformat utilities. The records not selected by the reformat utility may be put into a file by using the -y=filename parameter. When the -k parameter is specified, the index utility expects a keytag format file as the input file. A keytag format file can be created with the REFORMAT utility or a DB/C program. If the -t parameter is specified for the INDEX utility, then the open function of the DB/C run-time will only search for the text file in the same directory as the index file. On slow media like optical disks, use of this parameter can make the file open operation much faster. The LIST utility can expand tabs with the -x=n parameter. DB/C Class Schedule Class Date Location DB/C Advanced Features February 7 through February 9 Oak Brook, IL DB/C Fundamentals April 10 through April 12 Oak Brook, IL DB/C Advanced Features April 17 through April 19 Oak Brook, IL For information, contact Judi Tamkevic at: voice 708.572.0240 fax 708.572.0390 email dbc@swc.com