home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 22 / CD_ASCQ_22_0695.iso / win / prg / lb11wi / readme.txt < prev    next >
Text File  |  1995-04-02  |  11KB  |  307 lines

  1. Liberty BASIC 1.1
  2.  
  3. Please support shareware!
  4.  
  5. --------------------------------------------------------------------------
  6.  
  7. New with version 1.1!
  8.  
  9. The most exciting feature is our new FreeForm visual layout tool.  This
  10. tool lets you draw windows and add controls like buttons, listboxes,
  11. etc.  It then writes your windowing code for you, and you can paste the
  12. code into your program!  FreeForm is itself written in Liberty BASIC,
  13. and source code is included so that you can change it and add to it to
  14. make it fit your needs.
  15.  
  16. Another exciting feature of v1.1 is a redesigned *.TKN format file,
  17. giving Liberty BASIC 'Compile on Demand' capability.  When you run a *.TKN
  18. program, it starts right up, even if it is very large.  More importantly,
  19. when you register Liberty BASIC, you will receive a copy of the runtime
  20. engine, letting you distribute your programs royalty-free!
  21.  
  22. New OS/2 beta version available!
  23. Look for LB07.ZIP on your local BBS.  This OS/2 port of Liberty BASIC is
  24. designed to provide portability from the Windows version!  Or send us
  25. $5, and we'll send you a copy!
  26.  
  27. ---------------------------------------------------------------------
  28.  
  29. NOTES:
  30.  
  31. The first twenty-four items listed here represent the difference between
  32. release 1.0 and 1.0a of Liberty BASIC:
  33.  
  34. ** item 1) has been removed because it caused incompatibility with
  35.    other BASICs ***
  36. 1) Random file PUTs are forced to disk (later a more intelligent
  37. and efficient scheme will be added ;
  38.  
  39.  
  40. 2) Variable names can now start with reserved words.  For example,
  41. the variable name 'tools' would not have been permitted before
  42. because it starts with 'to', which is a reserved word ;
  43.  
  44.     (for x = 1 TO 10)
  45.                ^--- reserved word
  46.  
  47.  
  48. 3) Trapclose is now effective for the window and dialog window
  49. types ;
  50.  
  51.  
  52. 4) Now individual texteditor panes can be added to windows of type
  53. graphics, window, and dialog.  These panes can accept the same
  54. commands as windows of type text, and any number can be added to
  55. a single window.  For examples, see the included programs.
  56.  
  57. 5) Added the LOF(#handle) function, which returns the length of the file
  58. referenced by #handle.
  59.  
  60. 6) Fixed a bug in the  !origin row column  command for windows of type
  61. text, and for the texteditor panes.  Unfortunately use of !origin would
  62. sometimes cause a stack overflow, causing the entire Windows
  63. session to abruptly terminate, requiring a reboot to proceed safely.
  64.  
  65. 7) Corrected a problem that caused the last line of text printed to
  66. text panes to not be displayed.  This is for windows opened as type
  67. text (the various types), and for text panes added to windows using
  68. the texteditor command.
  69.  
  70. 8) Added the checkbox command, which lets one add checkboxes to
  71. Liberty BASIC windows of type: window, graphics, dialog.  The syntax
  72. is like this:
  73.  
  74.     checkbox #handle.ext, "label", [branchOn], [branchOff], 
  75.                 xOrigin, yOrigin, width, height
  76.  
  77.     [branchOn] is executed if the box is checked on
  78.     [branchOff] is executed if the box is checked off
  79.  
  80. Currently there is no way to set or reset the checkbox from program
  81. control.
  82.  
  83. 9) The TextBox object has been modified so that it can contain more
  84. than one line of text.  Simply specifying a vertical size large enough
  85. to accomodate the desired number of lines is all that is required to
  86. do so.
  87.  
  88. 10) Sometimes if a program terminates with a runtime error, there is
  89. no way to close the window(s) for that program.  A new system menu
  90. option has been added to force the termination of all open BASIC
  91. programs, even if they stubbornly refuse to close using the
  92. normal means.  Simply pull down the system menu and select 'Kill
  93. BASIC Apps...'.  This will usually take 10 or so seconds (16 MHz 386sx).
  94.  
  95. 11) Modified the select command for Listbox so that it will be able
  96. to select items that have spaces in them, either leading spaces,
  97. internally embedded spaces, or trailing spaces.  The same was done
  98. for Combobox.
  99.  
  100. 12) Added the selectionindex? command for Listbox and Combobox so that
  101. the numerical index of the current selection can be determined.
  102.  
  103.   Format is:
  104.       print #handle.ext, "selectionindex?"
  105.       input #handle.ext, i
  106.  
  107.   where the index (0 if no selection) is placed in i.
  108.  
  109. 13) Font selection is now cached.  When a font/size is first selected,
  110. it will take time to sift through and find a good match.  The second
  111. time that font/size is selected, the font will be returned almost
  112. instantly.
  113.  
  114. 14) Now the font command works with listboxes, not just texteditors.
  115.  
  116. 15) Now when the font command is used with the texteditor/textbox/listbox
  117. objects, fonts with spaces in their names can be selected.  Previously
  118. only those fonts with only one word in their name were selectable.
  119.  
  120. 16) The TRIM$() function did not work at all.  Now it does.
  121.  
  122. 17) The SORT command has been added.  This command sorts both double
  123. and single dimensioned arrays.  Arrays can be sorted in part or in whole,
  124. and with double dimensioned arrays, the specific column to sort by
  125. can be declared.  When this option is used, all the rows are sorted
  126. against each other according to the items in the specified column.
  127.  
  128.   Here is the syntax for the sort command:
  129.  
  130.     sort arrayName(, i, j {,n}
  131.  
  132.   This sorts the array named arrayName( starting with element i,
  133.   and ending with element j.  If it is a double dimensioned array
  134.   then the column parameter tells which nth element to use as a
  135.   sort key.  Each WHOLE row moves with its corresponding key as
  136.   it moves during the sort.  So let's say you have a double
  137.   dimensioned array holding sales rep activity:
  138.  
  139.     repActivity(x, y)
  140.  
  141.   So you're holding data, one record per x position, and your
  142.   record keys are in y.  So for example:
  143.  
  144.     repActivity(1,1) = "Tom Maloney" : repActivity(1,2) = "01-09-93"
  145.     repActivity(2,1) = "Mary Burns" : repActivity(2,2) = "01-10-93"
  146.      .
  147.      .
  148.      .
  149.     repActivity(100,1) = "Tom Maloney" : repActivity(100,2) = "01-08-93"
  150.  
  151.   So you want to sort the whole 100 items by the date field.  This is
  152.   how the command would look:
  153.  
  154.     sort repActivity(, 1, 100, 2
  155.  
  156.   If you wanted to sort by name instead, then change the 2 to a 1, like
  157.   this:
  158.  
  159.     sort repActivity(, 1, 100, 1
  160.  
  161. 18) The 'Watch Variables?' messageBox no longer appears when running the
  162. debugger.  It is now assumed that you want to watch variables.
  163. This saves time.
  164.  
  165. 19) The NOMAINWIN command is now effective when debugging programs.  This
  166. saves you from needing to close the main program window every time when
  167. debugging.
  168.  
  169. 20) Now there are three commands that can be sent to checkboxes:
  170.  
  171.   print #handle.ext, "set"
  172.  
  173.     This sets the checkbox.
  174.  
  175.   print #handle.ext, "reset"
  176.  
  177.     This clears the checkbox.
  178.  
  179.   print #handle.ext, "value?"
  180.   input #handle.ext, r$
  181.  
  182.     This returns either "SET" or "RESET" into r$, depending on
  183.     the state of the checkbox.
  184.  
  185. 21) The 1) item has been removed.  Random file record PUTs are now
  186. NOT forced every time to disk.
  187.  
  188. 22) Bug fix - When there was no THEN or GOTO in an IF...THEN
  189. statement, the compiler crashed.  Problem corrected.
  190.  
  191. 23) WHILE and WEND are now more GWBASIC compatible.  They will not
  192. execute a loop even once if the condition of the WHILE expression
  193. evaluates to false.
  194.  
  195. 24) The File and Files menus have been merged, and redundant items
  196. have been removed.
  197.  
  198.  
  199. Changes constituting release 1.1
  200. --------------------------------------------------------------
  201.  
  202. 25) A Setup menu has been added.  Font selection is part of the
  203. setup, and now there is an option to save the selected font as the
  204. default font.
  205.  
  206. 26) The LPRINT command now works, but still needs some work.
  207.  
  208. 27) The DUMP command has been added.  This completes the LPRINT
  209. fix by permitting a Liberty BASIC program to force dump everything
  210. to the printer at will.
  211.  
  212. 28) Added the LOADBMP and DRAWBMP commands so that any *.bmp file
  213. can be loaded and drawn in a graphics window either at x,y or
  214. centered on x,y.  Look at the included TTT.BAS and related *.BMP files.
  215.  
  216. 29) Eliminated the dreaded "Sharing Violation" bug that appeared when
  217. trying to run *.TKN files.  Now you can load SHARE.EXE and still use
  218. Liberty BASIC.
  219.  
  220. 30) Corrected a limitation in the input$() function that prevented
  221. the use of anything but a numeric literal as the second parameter.
  222. When an arithmetic expression was used before, it would not produce
  223. an error, but it would just act unpredictably.
  224.  
  225. 31) Added the command singleClickSelect to the listbox control.
  226. Example:   print #window.listbox, "singleclickselect"
  227. This tells the listbox to branch on a single-click, instead of a
  228. double-click, if so desired.
  229.  
  230. 32) Added the option to use an extension with the statictext command.
  231. When this option is chosen, a BASIC program can print to the control
  232. to change its text contents.  It can also perform an input to get its
  233. contents.  Example:
  234.  
  235.     'paste this code into Liberty BASIC and try it!
  236.     statictext #win.status, "help on", 10, 10, 100, 20
  237.     button #win, "Put", [put], UL, 10, 40
  238.     button #win, "Get", [get], UL, 10, 40
  239.     open "Application" for dialog as #win
  240. [inputLoop]
  241.     input r$
  242. [put]
  243.     prompt "Please type something"; text$
  244.     print #win.status, text$
  245.     goto [inputLoop]
  246. [get]
  247.     input #win.status, text$
  248.     notice text$
  249.     goto [inputLoop]
  250.  
  251. 33) The browser/editor now automatically selects the current default
  252.    drive and directory when Liberty BASIC loads.
  253.  
  254. 34) The File and Files menus are now integrated into one File menu, and
  255.    duplicate items are eliminated.
  256.  
  257. 35) Variable names can now start with reserved words.
  258.  
  259. 36) Boolean AND & OR are more GWBASIC compatible, but bitwise operations
  260.    are still not supported.
  261.  
  262. 37) The PgUp and PgDn keys now work when viewing Help files.  Previously
  263.    it was necessary to operate the scroll bars using the mouse.
  264.  
  265. 38) The WHILE...WEND commands are now GWBASIC compatible.
  266.  
  267. 39) The trim$() function now works.  It didn't before.
  268.  
  269. 40) A zoom text option has been added to the Source menu.
  270.  
  271. 41) Improved the font selection capability to include TrueType fonts.  When 
  272. naming a font with more than one word in its name replace the spaces with
  273. the underscore character.  For example:
  274.  
  275.     print #main.text, "font Ms_Sans_Serif 5 13"
  276.  
  277. 42) Because we now have an OS/2 native version of Liberty BASIC, the
  278. variables Platform$ and Version$ have been added.  They contain the
  279. name of the platform (either "OS/2" or "Windows") and the version #
  280. so that when differences between the versions become a problem, you
  281. can test to see which platform and version you're running, and write
  282. case specific code, letting you write one source for both platforms.
  283.  
  284. 43) Radiobutton support has been added.  Syntax is identical to
  285. checkbox support.  Grouppanes are not supported yet, so all radio-
  286. buttons in a window are linked.
  287.  
  288. 44) RULE XOR | OVER is added to graphics windows.  This lets you
  289. draw, and simply redraw to erase (using xor).  RULE OVER is the
  290. default, and it simply draws over whatever is there already.  See
  291. the DRAW.BAS program included. 
  292.  
  293. 45) A fix was added concerning a bug in Cursor management, which
  294. often caused GPFs when loading on some systems.
  295.  
  296. That's all for now!
  297.  
  298.  
  299. Shoptalk Systems
  300. PO BOX 1062
  301. Framingham, MA  01701
  302.  
  303. 508-872-5315
  304. Carl Gundel   CIS 71231,1532
  305.  
  306.  
  307.