home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 21 / CD_ASCQ_21_040595.iso / dos / prg / pas / tvgr70 / readme.doc < prev    next >
Text File  |  1995-01-11  |  18KB  |  457 lines

  1. README.DOC    TVGraphic v2.00
  2.  
  3. v2.02 December 1994
  4.   101 Keyboard support added - see GDrivers unit in file REFER20.DOC
  5.   Scrollbar appearance and control colors changed to match other controls.
  6.   maintanence release
  7.     Documentation bugs corrected, some areas expanded/rewritten.
  8.     Bug in loading saved DeskTop's and other views from v1.5 fixed.
  9.     TVSCR1.Exe - THistory bug fixed.
  10.     Fix RadioButton redraw bug in registered versions.
  11.     Less flicker in redraw of TInputLine.
  12.     Bitmaps - handle certain bitmaps where grays were reversed.
  13.       Fix drawing bug if PutBitMap called when outside the Viewport.
  14.     Will now draw last character of a single line TStatictext that
  15.       is sized by TurboVision rules.
  16.     TGroup.ChangeBounds - fixed to Not draw the view as per documentation.
  17.     A view may now be transparent - view behind it provides the background.
  18.     New SetViewPortToView to restrict drawing to inside the view.
  19.     New method to restrict mouse cursor movement to rectangle.
  20.     TPanWindow (and nested windows) - much work done.
  21.       code rewritten, now fully working -  you can drag a view and pan.
  22.       A single flag determines whether a view pans with the Interior or not.
  23.       If you use a view where VOffset <> 0,0 like this one, see new methods
  24.          TView.MakeInteriorGlobal, MakeLocalToInterior.
  25.       See revised Refer20.Doc for details.
  26.  
  27. -------------------------
  28. Summary of .DOC files
  29.   README.DOC    - This file.
  30.   Install.DOC   - notes on installing this software, subdirectories
  31.   TVGrafic.DOC  - the main documentation file + support policy
  32.   Refer20.DOC   - object by object reference file
  33.   REGISTER.DOC  - License, Registration, Warrenty
  34.     Beginner.DOC  - tutorial material on Turbo Vision and TVGraphic
  35.     Bitmap.DOC    - displaying bitmaps and using bitmapped views
  36.     Editors.DOC   - documentation for text editing unit
  37.     European.DOC  - read if your end user does not speak English
  38.     Fonts.DOC     - replacing the default bitmapped fonts
  39.     GHelp.DOC     - TVGraphic help system based on HelpFile.PAS
  40.     TextView.DOC  - TVGraphic mods to Turbo Vision's TextView unit
  41.     Tools.DOC     - using the Visual design tool
  42.     TVGDemo1.DOC  - demo program change history - many changes apply to
  43.                     ALL programs written with previous versions of TVGraphic.
  44. -------------------------
  45. Installation Note
  46.   You can use the -d option with UnZip or PKUnZip to install TVGraphic
  47.   with subdirectories. If you do this, you will need to copy the
  48.   READ_ME.NOW file to the DEMOS subdirectory (if you wish to run the demo
  49.   programs with DEMOS as the current DOS directory).
  50.  
  51. -------------------------
  52. Partial List of What's New with 2.0
  53.  
  54.   Version 2.0 is based on Turbo Vision 2.0
  55.     Requires Pascal 7.0. (v1.5 had units for both Pascal 6.0 and 7.0.)
  56.     Shareware version includes demo History, Validate, Editors units.
  57.     Registered users receive History, Validate, Editors units plus
  58.                          ComboBox, HelpFile and Protected mode units.
  59.     TVGraphic source code may now be licensed.
  60.  
  61.   Additional Demo programs
  62.  
  63.   Simplified code to create an application (Init,Done).
  64.  
  65.   VESA 800x600 support     (see VESADEMO.PAS)
  66.     (SVGA note: TVGraphic supports Borland's VESA16 driver in 800x600.
  67.      Commercially registered versions of TVGraphic can also work
  68.      with your copy of the Ryle Design SVGA library for direct (non-VESA)
  69.      support of 800x600x16 on 16 chipsets. The VESA16 driver is faster.
  70.      Ryle's non-BGI features are not supported.
  71.      Alternatively users may use SciTech Software's UniVBE TSR to
  72.      support the VESA16 driver across an even larger number of chipsets.)
  73.  
  74.   Editors unit has been extended/enhanced (Wordwrap, markers, etc.)
  75.                            (see EDITORS.DOC)
  76.  
  77.   Windows may have a pull-down Menu from the Close Icon.
  78.                            (see TVGRAFIC.DOC, TVGDEMO1.PAS, REFER20.DOC)
  79.  
  80.   Non-English languages/alphabets                      (see EUROPEAN.DOC)
  81.     User customizable UpCase function
  82.     User access to text strings of standard views.
  83.   TVGraphic's Bitmapped Fonts are now user replacable. (see FONTS.DOC)
  84.     European alphabet 8x8 and 8x14 fonts included.
  85.  
  86.   TScroller - simplified - see main demo program
  87.  
  88.   More sophisticated redrawing algorithm
  89.  
  90.   User Option whether views respond to mouse button up or down.
  91.  
  92.   more TV and TVGraphic Bug fixes
  93. ------------------------
  94. Partial List of What's New with 1.5
  95.  
  96.   BitMapped Text now much faster.
  97.  
  98.   Graphic BitMaps and buttons are here.
  99.     See files TVGrafic.Doc and BitMap.DOC.
  100.  
  101.   With the help of users, many bugs have been fixed. The most
  102.   noticable were in the screen redraw mechanism, Listbox,
  103.   GetShiftState, color selection dialog and F6'ing thru
  104.   subWindows in a TPanWindow.
  105.  
  106.   Menus and Listboxes now have highlight bar under focused item.
  107.  
  108.   Can insert a non-modal dialog into a window.
  109.  
  110.   TV's Blinking Text Cursor added.
  111.  
  112.   Interface to Dialog Design v4.0,4.1  a Visual Design tool.
  113.     See file Tools.Doc.
  114.  
  115. ------------------------
  116.  
  117. LATEST shareware VERSION of TVGraphic
  118.   By the time you read this, it may not be the latest version.
  119.  
  120.   Downloads     {also for latest Dialog Design}
  121.     CompuServe: Borland English language Pascal forum, Turbo Vision library
  122.     Internet  : anonymous ftp from ftp.std.com,
  123.                        in directory "vendors/Andresen".
  124.   Disk
  125.     Order disk from PsL - see file REGISTER.DOC. First check that
  126.     version is more recent than your copy. Approx $9 domestic, US $16
  127.     with overseas airmail.
  128.  
  129. ------------------------
  130.  
  131.  
  132. REGISTRATION, Warrenty, Source Code License
  133.  
  134.       see file REGISTER.DOC for info/license/form
  135.  
  136.  
  137. ------------------------
  138.  
  139.               (***********************)
  140.  
  141.            Changes with TVGraphic Version 2.0
  142.  
  143. 0.Unit Names
  144.     Menus unit in earlier TVGraphic was GMenu6, Now GMENUS.
  145.         The "G" is dropped from names of all objects in GMenus unit.
  146.     Numbers dropped fron other unit names:
  147.         MyGraph3 -> MyGraph
  148.         MCursor2 -> MCursor
  149.     The mysterious unit Rodent has been exterminated.
  150.     TVGraphic units for HistList, Validate and HelpFile.Pas are named
  151.         GHistLst
  152.         GValidat
  153.         GHelp
  154.  
  155.  
  156. 1.Mandatory Changes in Applications written with v1.5:
  157.  
  158.  > See TVGDemo1.DOC for list of changes to version 1.5 applications.
  159.  
  160.  > Two of these are mandatory!
  161.     Need to call InitHistory, DoneHistory in your application's
  162.       Init and Done since TVGraphic 2.0 uses the History unit.
  163.       Else crash when a History button is pressed!
  164.  
  165. 2.Creating an Application
  166.     The code needed to create an application (TMyApp.Init,Done)
  167.       has been simplified.
  168.     Descend your application from TProgram as usual in TVGraphic.
  169.       Several TV2.0 TApplication methods have been added to
  170.       TVGraphic's TProgram.
  171.  
  172. 3.TScroller,  TMyScroller (see main Demo program)
  173.     Yes its changed again. You no longer need to write your own
  174.     PartOfSetLimit method. The TScroller.SetLimit method has two added
  175.     parameters to set the scroll step sizes. There is a new
  176.     TScroller field to store these step sizes. Much simpler.
  177.     Also see REFER20.DOC.
  178.  
  179. 4.More sophisticated Redrawing algorithm
  180.     Earlier versions of TVGraphic always redrew from the bottom view
  181.     to the top view. This gives good results in complex Dialogs but
  182.     is not as attractive when redrawing views that overlap - such as
  183.     stacked windows on the DeskTop.
  184.     Now the Application, DeskTop and TPanWindow use an alternate redraw
  185.     algorithm that draws from the top view down. (If the view gets too
  186.     complex, they still use the bottom up redraw.) If necessary, you can
  187.     change the method used by setting/clearing the dfAlternateRedraw
  188.     flag in the new TView field DrawFlags.
  189.  
  190.   Redrawing within a ListBox has also been improved.
  191.   Modal Help Windows/Dialogs should now be executed by the Application to
  192.     avoid the need to manually redraw open box menus - see demo program.
  193.  
  194. 5.Mouse Button Behavior
  195.     Control over whether views respond to mouse button up or down.
  196.       The main demo program's Mouse menu lets you change this variable:
  197.            ViewsRespondToMouseUp : boolean = false;
  198.       If you set it true, then views respond to button releases as in
  199.       Turbo Vision. Otherwise they respond to button presses as in
  200.       previous TVGraphic.
  201.     In your own programs, if you wish to change it, set it once in App.Init.
  202.  
  203. 6.Default MouseGrids
  204.     Previous versions defaulted the mouse cursor grid to 10x10 and
  205.       enabled snap to grid for Menus and Dialogs. Then they changed these
  206.       settings with code in TDemoApp.Init.
  207.     Version 2.0 defaults to a single pixel grid (no grid) and disables snap
  208.       to grid in Menus and Dialogs. Thus TDemoApp.Init no longer sets the
  209.       grid and snap. If you want to change them, set them in TDemoApp.Init.
  210.  
  211. 7.Mouse Cursor
  212.     The mouse cursor image may be replaced with your own. REFER20.DOC.
  213.  
  214. 8.Default ViewPort
  215.     Now set in TProgram.Init. Set to cover the DeskTop. If no DeskTop, then
  216.     full screen.
  217.  
  218. 9.Support for writing programs with a non-English user interface
  219.     fonts, text strings in standard views, UpCase
  220.     see file EUROPEAN.DOC
  221.  
  222. 10.HELP
  223.     TVGraphic's version of the TV Help system (HelpFile.Pas) is unit GHelp.
  224.     See GHELP.DOC, HelpDemo.Pas.
  225.     The simpler dialog Help of TVGraphic is still available.
  226.     Modal Help dialogs or windows should now use Application^.ExecView(),
  227.       not DeskTop^.ExecView or ExecuteDialog. This also removes the
  228.       need to redraw the menu chain manually in certain circumstances.
  229.  
  230. 11.READ_ME.NOW
  231.     Programs written with Unregistered and Personally registered TVGraphic
  232.     now require the presence of a reminder file to run.
  233.  
  234. 12.ofVersion20
  235.     Several additional TVGraphic 2.0 views have the ofVersion20 flag set
  236.     in their Options field. Search REFER20.DOC for "ofVersion20".
  237.  
  238. 13.dpTV1Dialog
  239.     Used in earlier versions of TVGraphic.
  240.     No longer defined. Use dpCyanDialog for default dialog colors.
  241.  
  242. 14.TWindow palettes
  243.     The extensions of the TWindow palettes are changed from v1.5
  244.  
  245.                (**************************)
  246.  
  247. Changes with TVGraphic Version 1.5
  248.  
  249. Earlier TVGraphic used different names from Turbo Vision
  250.   for GDialogs objects    {object's palette name tracks object name}
  251.  
  252.       TgDialog          {extra constructor parameter}
  253.       TgCluster
  254.       TgRadioButtons
  255.       TgCheckBoxes
  256.       TgButton
  257.       TgCancelButton               {unique to TVGraphic}
  258.       TgOKButton                   {unique to TVGraphic}
  259.           TgInputLine    {extra constructor parameter}
  260.           TgStaticText   {extra constructor parameter}
  261.           TgParamText    {extra constructor parameter}
  262.           TgLabel        {extra constructor parameter}
  263.  
  264.  
  265. With version 1.5, the following objects revert to using the
  266. same name as in Turbo Vision and the same list of parameters in
  267. their constructors.
  268.  
  269.       TgDialog       -> TDialog   {no extra constructor parameter}
  270.       TgCluster      -> TCluster
  271.       TgRadioButtons -> TRadioButtons
  272.       TgCheckBoxes   -> TCheckBoxes
  273.       TgButton       -> TButton
  274.       TgCancelButton -> TCancelButton     {unique to TVGraphic}
  275.       TgOKButton     -> TOKButton         {unique to TVGraphic}
  276.  
  277.  
  278. The result is that with Ver1.5 and up, only those TVGraphic Dialog
  279. objects that have different names have the extra Opts parameter in
  280. their constructor.  As before, it is always the last parameter.
  281.  
  282. Remembering should be easier too - different names/constructors
  283.   for Text objects and InputLines.
  284.  
  285.  
  286. Dialog VOptions:
  287.   Without the extra constructor parameter, setting flags in
  288.   in a Dialog's  VOption field is done after construction.
  289.  
  290.       MyDialog.Init(........);  (your descendent of TDialog}
  291.       begin
  292.         Dialog.Init(.......));
  293.         VOptions := VOptions or (TVGraphic specific option)
  294.         ....
  295.  
  296.         OR
  297.  
  298.       var Dlg : PDialog;
  299.         ...
  300.         Dlg := New(PDialog, Init(.......));
  301.         Dlg^.VOptions := Dlg^.VOptions or (TVGraphic specific option)
  302.  
  303. ------------------------
  304. UserHook
  305. The name of the record type reserved for users has been changed
  306. from TUserHook to TUserRec.
  307.  
  308. Function TView.UserHook now takes a parameter of type TUserRec
  309. instead of a TRect.
  310.  
  311. -------------------------
  312. MGridSize
  313. The variable containing the current setting of the mouse cursor
  314. grid has been renamed and hidden. MGridSize is now a local
  315. variable. Function MCur.GetGrid(AGridRec : MGridRec) has been
  316. added to access grid info.
  317.  
  318. To find the current grid settings:  MGridSize := MCur.GetGrid;
  319.  
  320. -------------------------
  321. Setting the Screen Mode to Color
  322.  
  323. Previous versions of TVGraphic's TVGDemo1 program forced the screen
  324. into color mode in TDemoApp.Init. This can can cause a problem with
  325. B&W LCD laptops which are able to drive an external VGA color monitor.
  326. They end up in color mode and so Turbo Vision selects the color palette
  327. instead of the B&W palette.
  328.  
  329. -------------------------
  330. Changing Palette Colors
  331. The shade of the dark gray and brown colors is modified by calling
  332.  
  333.        procedure ImprovePaletteColors;
  334.  
  335. in the demo program. This is done both in TMyApp.Init and .DosShell.
  336.  
  337. During debugging in the IDE, if you break out of your program,
  338. the original colors will be restored unless you enable (menu)
  339.  
  340.        Options/Environment/StartUp   EGAVGA Palette Save
  341.  
  342. from the IDE's menu.
  343.  
  344. -------------------------
  345. Vertical Spacing for Text Views/Cursors
  346.  
  347. function VertTextOffset   unit MyGraph3
  348.  
  349. This function has been renamed  CalcVertTextOffset.
  350.   function CalcVertTextOffset(ViewYSize : integer) : integer;
  351.      For the current text font, this function calculates a vertical
  352.      offset for drawing the text in a view ViewYSize tall.
  353.      Can also be used to calculate offset to position text in a
  354.      particular vertical text line spacing by passing the line
  355.      spacing as parameter ViewYSize.
  356.  
  357. TView has had three new functions added
  358.   VertTextOffset  : integer; virtual
  359.   VertTextSpacing : integer; virtual
  360.   HorzTextOffset  : integer; virtual
  361.  
  362. The TView versions return the usual TVGraphic values of
  363.   Boxheight for VertTextSpacing
  364.   ByOffset  for VertTextOffset.
  365.       {VerTextOffset calls CalcVertTextOffset(VertTextSpacing)}
  366.             for HorzTextOffset
  367.  
  368. The Draw routine for the blinking text cursor calls VertTextOffset,
  369. VertTextSpacing and HorzTextOffset to locate the cursor properly
  370. on the screen.
  371.  
  372. In your descendant views using the cursor:
  373.   If you change a View's text line spacing or the vertical offset
  374. of text into this spacing, you need to override these functions
  375. to return your values.
  376.  
  377. -------------------------
  378. TOKButton and TCancelButton
  379. These standard TVGraphic buttons have been increased in width
  380. from seven to 10 * Charlen. They now match the width of other buttons.
  381.  
  382. -------------------------
  383. TScroller,  TMyScroller (in Demo program)
  384.  
  385. Earlier versions of TVGraphic fixed TScroller.SetLimit in text
  386. mode coords using Charlen and Boxheight. There was no bug free way
  387. to change scroll step and pageup/down spacing.
  388.  
  389. Procedure TScroller.PartOfSetLimit(X, Y ; integer); virtual;
  390. has been added and is now called by SetLimit to set the Limit and
  391. to call the scrollbars to set their step sizes and pageup/down
  392. sizes. By overriding, the programmer can set up a scroller for
  393. ANY vertical and horizontal text spacing (or drawing grid spacing).
  394. See source code example in demo program - TMyScroller.
  395.  
  396.  
  397. TScroller.SetLimits now works entirely in graphic (pixel) coordinates
  398.   unless PartOfSetLimit is overridden.
  399.  
  400. TMyScroller overrides PartOfSetLimit and works entirely in text
  401.   mode coordinates as before.
  402.       {lines vertically, chars horizontally}
  403.  
  404. You will need to change coordinates in calls to TScroller.SetLimit
  405. and possibly override PartOfSetLimit for views descending from
  406. TScroller rather than from TMyScroller. See demo program.
  407.  
  408. -------------------------
  409. StatusLine
  410.   Events broadcast from the StatusLine now have the InfoPtr set to
  411. Ptr(0000,0001) rather than @Self as in earlier TVGraphic.
  412.  
  413. -------------------------
  414. WriteCStr
  415.   This routine writes highlighted text strings and has been joined
  416. by WriteCStrXY. Both procedures are now in the MyGraph3 unit.
  417.  
  418. -------------------------
  419. Mouse Cursor Madness
  420.   The cursor now can travel full screen. An hourglass "wait" cursor
  421. has been added with a global flag to enable it. TMCur.SelectStdCursor
  422. and TMCur.SelectHourGlass switch between shapes.
  423. See unit MCursor in Reference file.
  424.  
  425. -------------------------
  426. TV's Intrinsic Blinking Text Cursor
  427.   Yes its here but may not be entirely bug free. To enable the cursor
  428. in a view, you need to set the view's EventMask to include evTimerTick
  429. and call ShowCursor. Due to the fact that graphic mode doesn't support
  430. a blinking cursor in hardware, you are partly responsible for the
  431. cursor in your own redraws unless you redraw by calling DrawView.
  432. As usual, TVGraphic handles the automatic screen redraws.
  433.  
  434. See section in TVGRAPHIC.DOC.
  435. See TView methods SetCursor, ResetCursor in Reference file.
  436.  
  437. -------------------------
  438. TApplication.GetEvent
  439.   Earlier versions of TVGraphic used the demo program's TMyApp.GetEvent
  440. to generate TimerTick events and to update the mouse cursor position.
  441. These operations are now done in TProgram.GetEvent. The remaining code
  442. in TMyApp.GetEvent is optional. In your TApp.GetEvent, eliminate code
  443.  
  444.   if (Event.What = evNothing) then begin
  445.     GetBiosTickEvent(Event);
  446.     if not (Event.What = evNothing) and not (TopView = @Self)
  447.       then begin
  448.         HandleEvent(Event);
  449.       end;
  450.    end;
  451.  
  452. AND
  453.     MCur.Move(Event.Where);    {move cursor to mouse location}
  454.  
  455.  
  456. -------------------
  457. END.