Accelerated Application Design

eXpress++ 2.0 is an add-on library/DLL for Xbase++ that aids in the migration of Clipper applications to full-GUI or can be used to create new Xbase++ GUI applications quicker and easier.

eXPress++ provides a SGU (Structured GUI Language) style command syntax for creating complex GUI dialogs and reports that produces the same functional program as one written fully object-oriented. eXPress++ applications are easy to develop and maintain.

eXpress++ is a library of functions and a set of pre-processor include files that aids in the conversion of text-based Clipper application code to GUI-based Xbase++ application code and gives the Clipper programmer an easier migration path to Windows. eXPress++ also aids in the development of new Xbase++ applications by giving the programmer an easier method to develop complex GUI dialogues. Xbase programmers (Clipper, dBase, FoxPro) are accustomed to designing programs by using procedures and functions rather than classes and OOPS. The simplicity of eXPress++ commands and dialogue system lets any Clipper programmer create and maintain complicated dialogues by exploiting the power of Xbase Parts.

eXpress++ is NOT a "magic-wand". It does not automatically convert Clipper text-based applications to GUI-based applications. Most Windows programmers will tell you that you cannot take a standard Clipper application with @SAY..GETS, Menu Prompts, etc, and convert it to a Windows GUI program without a major change in the architecture and the functionality of the program. They claim that a text-based, modal design has too little in common with GUI-based, event-driven, non-modal design. They will tell you that it's like trying to fit a square peg into a round hole. In some Clipper applications the complexity of the archicture may make this more difficult, however, most Clipper programs are designed in such a manner that existing code can be "transformed" to run as Windows GUI applications with very little effort.

Xbase++ is designed differently than other Windows development languages. The object model and the event model supported by "Xbase Parts" allowed us to develop a system that works with a "Get-List", similar to Clipper and then pass the GetList array to either the text reader, DC_ReadModal() or the GUI reader, DC_ReadGui(). This abstraction of the functional design of a dialogue from the code implementation of the dialogue allows for architectures in which Clipper @SAY..GETS and menus can be easily migrated to GUI.

Once you have converted your existing @SAY..GETS, then you can embellish your dialogue system with toolbars, bitmaps, radiobuttons, checkboxes, spinbuttons, browses, etc. using the same simple command syntax.

eXpress++ also provides a report printing syntax that converts existing @SAY "printer" commands, ?/?? printer commands, and REPORT FORM (.FRM) printing into object-oriented methods that use the Xbase parts Printer class. This allows for existing reports to be routed to any Windows printer device (and previewed) rather than just LPT1.

Customer Screen Shots

Screenshot #1 (HyCARE)
Screenshot #2 (HyCARE)
Screenshot #3 (HyCARE)
Screenshot #4 (HyCARE)
Screenshot #5 (HyCARE)
Screenshot #1 (Medallion NYC Taxi)
Screenshot #2 (Medallion NYC Taxi)
Screenshot #3 (Medallion NYC Taxi)
Screenshot #4 (Medallion NYC Taxi)
Screenshot #5 (Medallion NYC Taxi)
Screenshot #6 (Medallion NYC Taxi)
Screenshot #1 (AWolf Transmission Rebuild System)
Screenshot #2 (AWolf Transmission Rebuild System)
Screenshot #3 (AWolf Transmission Rebuild System)
Screenshot #4 (AWolf Transmission Rebuild System)
Features: * Converts @SAY..GETs to Windows-GUI dialogs. Supports WHEN, VALID and HIDE clauses. * Converts @PROMPT and MENU TO to Windows-style pushbutton menus. * Converts AChoice() and DbEdit() to Windows-style browse. * Converts SET DEVICE TO PRINT and @SAYs to Windows-GUI printer commands. * Build any GUI dialog using simple procedural-style commands like this: @ nRow, nCol DCTABPAGE oGroup CAPTION cText [...OPTIONS] @ nRow, nCol DCSAY cSay GET uVar [...OPTIONS] @ nRow, nCol DCCHECKBOX uVar PROMPT cPrompt [...OPTIONS] @ nRow, nCol DCRADIOBUTTON uVar VALUE xVal [...OPTIONS] @ nRow, nCol DCMULTILINE uVar [...OPTIONS] @ nRow, nCol DCLISTBOX uVar LIST aList [...OPTIONS] @ nRow, nCol DCCOMBOBOX uVar LIST aList [...OPTIONS] @ nRow, nCol DC3STATE uVar PROMPT aVar [...OPTIONS] @ nRow, nCol DCSPINBUTTON nVar [...OPTIONS] @ nRow, nCol DCPUSHBUTTON CAPTION cCaption ; SIZE nWidth, nHeight ACTION bAction [...OPTIONS] @ nRow, nCol DCGROUP oGroup CAPTION cCaption SIZE nWidth, nHeight [...OPTIONS] @ nRow, nCol DCSTATIC oStatic CAPTION cCaption SIZE nWidth, nHeight [...OPTIONS] DCSTATUSBAR ALIGN [...OPTIONS] @ nRow, nCol DCSPLITBAR [..OPTIONS] @ nRow, nCOL DCHTMLVIEWER [..OPTIONS] DCTOOLBAR oToolbar TYPE nType [...OPTIONS] DCADDBUTTON CAPTION cCaption PARENT oToobar ACTION bAction [...OPTIONS] DCMESSAGEBOX oMsg TYPE nType [...OPTIONS] DCMENUBAR oMenuBar [...OPTIONS] DCSUBMENU oSubMenu PROMPT cPrompt PARENT oMenuBar [...OPTIONS] DCMENUITEM PROMPT cPrompt PARENT oSubMenu ACTION bAction [...OPTIONS] @ nRow, nCol DCBROWSE oBrowse DATA aData|cAlias SIZE nWidth, nHeight [...OPTIONS] DCBROWSECOL nbData HEADER cHeader PARENT oBrowse [...OPTIONS] DCBITMAP ncRes PARENT oParent [...OPTIONS] @ nRow, nCol DCSCROLLBAR DATA uVar SIZE nWidth, nHeight SCROLL bScroll [...OPTIONS] @ nRow, nCol DCPROGRESS oProgress PERCENT EVERY nEvery ; SIZE nWidth, nHeight [...OPTIONS] @ nRow, nCol DCTREEVIEW oTree [..OPTIONS] DCTREEVIEWITEM cCaption PARENT oParent DCGETOPTIONS SAYFONT cSayFont GETFONT cGetFont ROWSPACE nRowSpace [...OPTIONS] @ nRow, nCol DCDIRTREE DIRS oDirs VAR cDirVar [...OPTIONS] @ nRow, nCol DCACTIVEXCONTROL oControl [...OPTIONS] @ nRow, nCol DCRMCHART oChart [...OPTIONS] @ nRow, nCol DCCHARTREGION oRegion PARENT oChart [...OPTIONS] DCADDBARGROUP TO aBarGroup [...OPTIONS] DCADDLINEGROUP TO aLineGroup [...OPTIONS] DCADDGRIDLESSGROUP TO aGridLessGroup [...OPTIONS] DCPRINT ON [ TO oPrinter ] [ NAME cPrinterName ] [ SIZE nRows,nCols ] ; [ PAGES nFrom, nTo ] [ PAPERSIZE nPaperSize ] [ COPIES nCopies ] ; [ collate:COLLATE ] [ tofile:TOFILE ] [ FONT ocFont ] [ fixed:FIXED ] ; [ pixel:PIXEL ] [ preview:PREVIEW ] [acrobat:ACROBAT] [xps:XPS] @ nRow, nCol DCPRINT SAY uText [truetype:TRUETYPE] [pixel:PIXEL] @ nSRow, nSCol, nERow, nECol DCPRINT BITMAP ncRes .. many more commands * Includes a set of .DLLs and .LIBs for distribution with your Xbase++ applications. * Includes all source code. Written entirely in Xbase++ code. * Includes a full set of sample programs to make it easy to get started. * Complete on-line documentation in Windows .HLP format. * Includes Clipper .MEM file conversion utility. * Includes XDOT.EXE - a Dot-Prompt utility that is a database manager and interpreter. * Unlimited FREE Tech support w/ upgrades and patches available on World-Wide-Web.