Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- FiveWin 1.9.2 - January 97 - fivewin 1.9.2 http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 FiveWin 1.9.2
 ===========

* New Ole Automation client support: New functions CreateOleObject(),
  OleInvoke() and OleSetProperty(). See SAMPLES\TestOle.prg. The perfect
  Microsoft Office-FiveWin intregation.

* New Office 97 look: Try the new NOBORDER clause for the ButtonBar buttons.
  See SAMPLES\FwBorl.prg buttonbar!

* The ATI video card bug has been fixed!!! Finally we discovered the ATI
  offending code and we fixed it!

* InterNet support: New Class TSocket provides FiveWin all the powerfull
  TCP/IP WinSock support. See SAMPLES\TestSock.prg for an impressive demo
  of a fully operative WEB server entirely written with Clipper & FiveWin.

  Once you have TCP/IP installed on your machine, start TestSock.exe and
  press button start. The message bar will report your IP own address when
  you move the mouse over the main screen. Then, start Microsoft IExplore.exe
  and you will be impressed watching your app working as a real and
  self-contained WEB pages InterNet server. With these unique features, you
  may build the most powerfull IntraNet/InterNet applications.

* Fix: Thanks God we found the NetApi.dll bug when printing under Windows
  3.1 for WorkGroups and using a remote printer. It was as simple as
  specifying a NAME for the print document:

      PRINT <oPrn> NAME "WhatEver"

  The Class TPrinter has been fixed to provide a "FiveWin Report" default
  name. It has been tested and no more NetApi.dll GPFs! <g>

* Fix: There was a wrong behavior when using BackSpace on a Get. It has
  been fixed.

* Enhancements on the FiveWin IDEs: Lately we decided that FiveWin should
  include two IDEs: the 'traditional' one (on the line of C++ IDEs) and a
  'Visual' one (on the line of VB, Delphi). We will try to get them closer
  and closer as mush as possible (in fact we would like to have just one
  IDE which may works as 'traditional' or as 'visual').

  We have done recent work on the traditional IDE (IDE directory) and now
  it is already possible to edit, compile and link from it. Projects are
  still not supported, but soon will be implemented. Be sure that the
  TOOLS directory is available and that your paths are properly set at the
  LNK files. Soon all this setup will be automatically managed.

* Enhancement: Class TVbxControl were not properly managing array
  properties. Now it is working ok! We have defined a new class TVbxArray
  that it is automatically managed by VBX controls. See SAMPLES\ChartFX2
  for a superb VBX graphics demo!!!

* Enhancement: Class TReport has been enhanced so now all codeblocks
  automatically receives Self as the first parameter. The Report groups
  receive the group object instead of the report object (the group object
  keeps a reference to the report object at DATA oReport).

* Very important: Clipper 5.2 has a bug at Alloc.obj module. This bug
  is fixed at Clipper 5.3. In case you are not still using Clipper 5.3,
  please extract Alloc.obj from Clipper 5.3 Clipper.lib and linking in
  your application. This solves many DBF management potential errors.
  These problems normally will only manifest on very large applications.

     From Clipper 5.3 do:     LIB Clipper.lib * Alloc.obj;

     And use it at your LNK file:  FI Alloc.obj

  We do recommend to use Clipper 5.3. It is a better Clipper. Based on
  our own tests, Clipper 5.3 MDX and CDX support it is working ok.

* Very important: FiveWin.lib keeps growing and we are very close to the
  LIB size limit. We are still resisting to split the library into two:
  FiveXX.lib (for PRGs) and FiveC.lib for C language code. But for now,
  if you keep replacing your own modules at FiveWin.lib you could reach
  a critic LIB size.

  How do you know if there is a problem there ? If you try to execute
  your application and you get an error saying "one of the devices related
  to the application is not found" under Windows 95. This means that the
  EXE is corrupted caused by the LIB size.

  The solution is to use your own LIB for your modules or modifications
  on FiveWin modules. Don't modify FiveWin.lib.

* New: There is a new method EditCol() for Class TWBrowse that lets you
  do non-modal editing on a browse. Remember that the actual lEditCol()
  method of Class TWBrowse is modal, so you can not click outside the
  bounds of the Get to switch to an adjacent cell.

* New: clause WHEN for MenuItems !!! This really saves a lot of coding
  to automatically activate and deactivate MenuItems. Also, the clause
  BREAK has been implemented: very usefull when managing very large
  popups that now can be broken in several vertical sections.

* New: Standard Editing capabilities. The METHOD AddEdit() of the Class
  TMenu implements standard editing capabilities to your app (following
  the Microsoft interface tendencies). This means that you can perform
  a UnDo, ReDo, Cut, Copy, Paste, Find, FindNext, Replace, Delete,
  SelectAll and Properties to any element of your interface.

  Just define the codeblocks: bUnDo, bReDo, bCut, bCopy, bPaste, bFind,
  bFindnext, bReplace, bProperties and FiveWin will automatically route
  those requests to the control that currently is focused. These methods
  have been added to TWindow (and all inherited classes), TMdiFrame and
  TMdiChild.

* New: 32 bits API support!!! FiveWin lets you easily access the Windows
  95 and Windows NT 32 bits DLLs. See SAMPLES\ Test32.prg for a working
  demo. It is as easy as use a new DLL32 clause when accessing run-time
  DLLs. You can also LoadLib32() and FreeLib32(). Our next target is to
  be able to start a FiveWin application as a real 32 bits app.

* New: The source code of the FiveWin debugger has been published. We
  will be happy to review all your suggestions and enhancements to have
  a much better and usefull debugger. See FUNCTION\ FWDGBP.prg !!!

* New: The FiveWin ErrorSys DialogBox has been modified to give it a
  more modern look. Generate any Clipper error and have a look <g>.

* Enhancement: Class TComboBox has been enhanced to get a better DropDown
  (including a GET!) use. See Samples\ DropDown.prg sample. Thanks a lot
  to Jerry Shaw for his great help! Warning: Previous versions of FiveWin
  required to redefine the contained oGet of a dropdown ComboBox. Now
  this is no longer required.

* Enhancement: RADIOS now accept different Help IDs for each element.
  See SAMPLES TestRad2.prg.

* Important Enhancement: Class TDataBase has been greatly enhanced,
  and all its C source code has been removed. We received a lot of request
  from FiveWin users to have full access to its source, so we decided to
  code it in standard Clipper. Class TWorkArea no longer exists. In
  fact, the new Class TDataBase now contains all the older TWorkArea
  Class functionality.

  Class TDataBase now automatically work on a NetWork, issuing the locks
  and unlocks as required. It is a very powerfull class we strongly
  recommend you to use. See the documentation for an indeep explanation
  and recommendations about its use.

* New: Clipper KEYBOARD command and __Keyboard() function are
  already available! Also Clipper LastKey(). You must give the
  focus to a control or windows prior to send it some keystrokes.
  Control keys are not supported yet. See SAMPLES TestKey.prg

* New: Clipper Alert() function is supported as in MsDos. See
  SOURCE FUNCTION Alert.prg and SAMPLES Alert.prg. Syntax:
  Alert( <cMsg>, <acOptions> [,<cTitle>] ) --> nSelectedOption

* Enhancement: Class TFolder. Folders may be now created from source
  code. See SAMPLES TestFld3.prg and SAMPLES GenFold.prg.

* New: Class TWBrowse admits now to use different colors for painting
  each browse row, based on a codeblock. You can have great looking
  browses with a minimum work on your side. See SAMPLES FwBrow.prg for
  a working demo.

* New: We are using CTL3DV2.DLL instead of older CTL3D.DLL. There is no
  code change required in your apps, just be sure to supply your customers
  CTL3DV2.DLL instead of CTL3D.DLL. CTL3DV2.DLL must be copied to your
  WINDOWS/SYSTEM directory or it will not be found by your app.

* New: We have adapted FiveWin colors to use the Windows current colors.

* New: Class TPages, it lets you manage multiple DialogBox pages in
  the same way as folders. See SAMPLES TestPage.prg for a working sample.

* Very important: NEVER mix Clipper 5.3 and previous Clipper versions code
  if you are using a previous Blinker version to 3.2. To mix Clipper 5.x
  and Clipper 5.3 code you MUST use Blinker 3.2. No problem if you use
  Microsoft Link or Symantec OptLink.

* New: Much improved FiveWin DGROUP consume. We have reduced almost entirely
  the DATA segment used by FiveWin. We needed this because Blinker does
  not compress Clipper symbol tables over 64 Ks. So, in very large apps
  (around 2 megas) Blinker stops doing it and suddenly the app consumes
  more DGROUP, so we needed to control this. Our tests here are going 100%
  OK!

* New LoadAccelerators() function.

* Improved MAPI support, perfect for quick sending NET documents from your app,
  just calling MAPISendDocument(). See SAMPLES FivEdit.prg.

* Improved Network connection and disconnection functions, for easily access
  all Network resources from inside your app: WNetConnectDialog() and
  WNetDisconnect(). Users will not need to access FileManager or Explorer to
  connect on the Network. See SAMPLES FivEdit.prg.

* New support function for Placeable MetaFiles (now you can use Corel Draw or
  similars to generate MetaFiles that could be used from your apps. Perfect
  for invoices, bills, and general free-forms printing techniques).
  See SAMPLES Corel.prg.

* New Multimedia SndPlayRes() function to reproduce WAV files from resources
  (no external WAV files required).

* New automatic Alignment capabilities. Controls automatically adjust their
  positions in screen. This save hours of work! New DATAs: oTop, oLeft,
  oBottom, oRight and oClient and a new TPanel Class to place auto-alignment
  controls inside other controls! See SAMPLES TestAlig.prg.

* Much improved DDEML support. There is a new Class TDDEML which easily
  automatizes it. See SAMPLES DDEMLSvr.prg and DDEMLCli.prg.

* New nRandom() function for easily generating random numbers in your apps.

* New powerfull hashing function to incredible quickly access your huge-arrays
  elements. nStrHash(). See SAMPLES TestHash.prg.

* New: See Class TTxtEdit. It is a powerfull and 100% configurable,
  text editor with syntax color highlighting. See SAMPLES FivEdit.prg.

* New: SET MULTIPLE ON command, permits to run multiple instances of the
  same FiveWin EXE. Use this to let your users run your app multiple
  times at once. Important: ONLY FOR Windows 3.1. Not for Windows 95 and NT.

* Important: Clipper 5.3 users: ExoSpace.lib is no longer required when
  linking your applications. Also, NtxPos() has been updated to
  properly work with CA-Clipper 5.3.

* New security functions: nStrCRC() to get the checksum of a text and
  nFileCRC() to get the checksum of an entire file. This is the perfect
  way to ensure that your final EXE is not modified at all!
  See SAMPLES TestCRC.prg

* New ListBox METHODs: SwapUp() and SwapDown(). They let you move up
  and down a listbox item.

* New nSerialHD() function to retrieve the harddisk serial number.
  Many people were requesting this to copy-protect applications.
  See SAMPLES TestHard.prg.

* Bug Fixed: Methods oReport:PhyWidth() and oReport:PhyHeight()
  did not work correctly because the non-printeable area was
  excluded from the widht and height, if you need the printeable
  area use the method nHorzSize() and nVertSize() of the printer
  object.

* Bug Fixed: oPrn:SetLandScape()

* Bug Fixed: oPrn:SetPortrait()

* Bug Fixed: oPrn:SetCopies( nCopies )

* New!!!: New clause on the PRINT command:

  PRINTER oPrn TO "HP"
  PRINTER oPrn TO "EPSON"
  PRINTER oPrn TO "FAX"

  Now you can choose any printer just indicating part of his name
  when you defined them in the Windows control panel

  PRINTER oPrn TO 2

  You can also choose the printer indicating his ordinal number on
  the printer list.

  (Remember to copy the new PRINT.CH to your INCLUDE directory)

* New: New method oPrinter:GetOrientation() that gives you the current
  orientation of the printer:

  #define PORTRAIT              1
  #define LANDSCAPE             2

* New: New method oPrinter:SetSize(nWidth, nHeight) on the the
  printer object to change the dimension of the page (in milimiters)

* New: New method oPrinter:GetPhySize(@nWidth, @nHeight) on the the
  printer object to find the physical size of the page.

  Yoy may pass by reference the variables wich hold the data but also
  the method returns a two-dimension array with the data as well.

* New: New methods to do some conversions with the printer object:

  - Pix2Mmtr(nRow, nCol)
  - Pix2Inch(nRow, nCol)
  - Cmtr2Pix(nRow, nCol)
  - Inch2Pix(nRow, nCol)

  Yoy may pass by reference the variables wich hold the data but also
  the methods returns a two-dimension array with the data as well.

* Bug Fixed: Methods SayBitmap(), Box() and Line() did not work properly,
  now it is ok.

* Bug Fixed: The PREVIEW clause did not work and the report was always
  sent to the printer (Bug in FW 1.8e)

* New: New version of PREVIEW.DLL that includes all the printing
  messages for the report engine and the preview program. You should
  update the version of PREVIEW.DLL wich is on your WINDOWS SYSTEM
  with the new one located at CLIPPER5 FWXX SAMPLES REPORT.

  You will se at least two DLL's at the .. SAMPLES REPORT directory,
  PREVIEW.DLL wich is en english and PREVSP.DLL wich is in spanish,
  if you want to use the spanish version just rename PREVSP.DLL to
  PREVIEW.DLL on your WINDOWS SYSTEM directory.

  This tecnique will make it possible to have a Preview multi-language,
  just use the WorkShop to change all the messages to your own language.

* New: Method SetTxtColor(nColor, nFont) to change the color of nFont
  For example: oReport:SetTxtColor(CLR_RED, 1) will change the default
  color to Red

* New: Method SetShdColor(nColor) to change the color of the shadow when
  the clause SHADOW is used on any column.

* New: Method SetPenColor(nColor) to change the color of the pen used
  for horizontal lines. To change the color of vertical lines just
  indicate the color when you create the pen, for example:

              DEFINE PEN oPen WIDTH 1 COLOR CLR_RED

* New: Method CellView() on class TReport to give to you report a Spread
  Sheet style (It also works with the clause TO FILE ...)

* New: Data lJoin on class TReport to join all the lines in your report
  (It also works with the clause TO FILE ...)

* New: Data lSeparator on class TReport to draw a separator line
  between all the records of your report (It also works with the clause
  TO FILE ...)

* New: Data Cargo on all the Report engine classes

* New: Data nOrder on TRGroup and TRColumn that holds the relative
  order creation of the object, for example, the second column of
  your report will have nOrder == 2

* New: Data lSeparator on TRColumn when .T.  the column will have a
  separator line.

* New: Data lDobleSep on TRColumn when .T.  and if the data lSeparator
  is .T. the separator line will have two lines.

* New: Data lTextSep on TRColumn when .T.  and if the data lSeparator
  is .T. the separator line will have the width of the text printed,
  if not the width of the separator line will be the same as the
  column. For example if you want the first column of your report to
  have a double underline, do the following:

        oReport:aColumns[1l:lSeparator := .T.
        oReport:aColumns[1l:lDobleSep  := .T.
        oReport:aColumns[1]:lTextSep   := .T.

* New: Method Separator() on TRColumn to print separator lines on any
  column manually. The method Separator() receives the following
  parameters:

  - lTextSep : if .T. the separator Width will be the same as the DATA
  - lDoblSep : if .T. the separator line will have two lines
  - nLine    : Line number of the DATA column
  - nRow     : Row number to start printing the separator line

  For example: Put the salary doble underline when is greater than 100

        REPORT oReport
        ....
        ....

        COLUMN DATA Db->Name, Db->Salary ;
               TITLE "Name", "Salary"

        ACTIVATE REPORT oReport ON CHANGE ChkSalary(oReport)
        ....
        ....

        FUNCTION ChkSalary(oReport)

         IF Db->Salary > 100
            oReport:aColumns[1]:Separator(.T., .T., 2)
         ENDIF

        RETURN NIL


Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson