1. Say/Get

The usual @..SAY/GET full screen input and output is supported by the common way. From this code...
 
USE address ALIAS adr SHARED NEW
SET COLOR TO "W+/B,GR+/R,W/B,W/B,GR+/BG"
cls
@  1, 0 SAY "Id No. " GET adr->IdNum   PICT "999999" VALID IdNum > 0
@  3, 0 SAY "Company" GET adr->Company
@  3,35 SAY "Branch"  GET adr->Branch  WHEN  !empty(adr->Company)
@  4, 0 SAY "Name   " GET adr->Name    VALID !empty(adr->Name)
@  4,35 SAY "First "  GET adr->First
@  6, 0 SAY "Country" GET adr->Country PICTURE "@!"
@  8, 0 SAY "Zip    " GET adr->Zip     PICT "@!" VALID !empty(adr->Zip)
@  9, 0 SAY "City   " GET adr->City
@ 10, 0 SAY "Street " GET adr->Street
READ

creates FlagShip an executable usable either in GUI, or Textual/Terminal, or Basic (e.g. in Web/CGI) environment. You may specify the i/o mode by a compiler or run-time switch; otherwise a hybrid application is created, and the used i/o mode determined automatically from the environment at the time of program execution.
 
Say/Get GUI - Click for full image   Say/Get Terminal i/o - Click for full image

Also, all common GUI widgets (controls) like Listbox, Combobox, Push buttons, Checkbox, Radio buttons and groups, Tbrowse, Info and Message boxes, Menu and so on are available as well, see example below in the Debugger screenshot. You may either use directly the corresponding class or the convenient @..GET.. / READ syntax.



2. Tbrowse

these few source code lines
 
USE address SHARED NEW
* index if required, see full source
SET INDEX TO addr_comp, addr_id
oBr := TbrowseDb(3,0, 20, 72)
for ii := 1 to Fcount()
   oBr:AddColumn( TbColumnNew(FieldName(ii), FieldBlock(FieldName(ii)) ))
next
oBr:Trim := .T.   // optional, trim displayed data of type 'C'
oBr:Exec()        // use default keyboard handler (source avail.)
                  // - or insert here your own handler

will create either GUI or terminal based executable:
 
Tbrowse GUI - Click for full image   Tbrowse Terminal i/o - Click for full image



3. Dbu
 
even the CA/Clipper tool DBU will run either in GUI:
 
Dbu in GUI - Click for full image   Dbu in GUI - Click for full image
 
or in textual mode:
 
Dbu in Terminal i/o - Click for full image   Dbu in Terminal i/o - Click for full image



4. Drawing and printing

With simple @..DRAW commands, you may show images or draw lines, circles, polygons etc.

Graphical output - Click for full image  

Click on the image to enlarge. The output left is created by

@ 8,15 DRAW ARC RADIUS 7 ANGLE  0,90  GUICOLOR "R+" PRINTCOLOR "R+" LINEW 4  
@ 8,15 DRAW ARC RADIUS 7 ANGLE 90,180 GUICOLOR "G+" PRINTCOLOR "G+" LINEW 4  
...
@ 8,48 DRAW CIRCLE RADIUS 7 GUICOLOR "R+/G+" LINEWIDT 2
...
@ 18,15 DRAW PIE RADIUS 7 ANGLE  55, 80 GUICOLOR "G+/G+" LINEW 2
@ 18,15 DRAW PIE RADIUS 7 ANGLE 135,100 GUICOLOR "RG/#FEDA1E" LINEW 2
...
@ 24,45, 28,67 DRAW RECTANGLE ROUND 70 LINEW 2 GUICOLOR "N/W+"
@ 12.5,9.3, 13.6,13 DRAW IMAGE FILE ("anim1.bmp") SCALE UNIT=CM
...

and with the simple command sequence

SET GUIPRINTER ON        // start redirection   
...
SET GUIPRINTER OFF       // stop redirection
PrintGui()               // print

you may re-direct the same output to any available printer (also USB or network based) selected by common dialog box.



5. Debugger

Fully featured source-code debugger is included. FlagShip debugger allows you watch source, set any number of breakpoints, examine and set variables and databases, or lets you execute any command, function or expression (more..). Simply compile with the -d flag and you get: (click the picture to get full-size image)
     
Debugger - Click for full image   Debugger - Click for full image
 
Debugger - Click for full image   Debugger - Click for full image



See also Benchmark comparison and additional screenshots in Wikipedia

 

MultiSoft Logo
| FlagShip Home Page | What's New | Info | Press | Demos | Order | Tools | Support | Email |

Trademarks: multisoft and the multisoft logo are registered trademarks of multisoft Datentechnik, Munich, Germany. FlagShip is a trademark of multisoft Datentechnik, Munich, Germany. Other products named here may be trademarks of their respective manufacturers.