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.7 - prerelease iii http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 FiveWin 1.7 - PreRelease III
============================

* New function MsgAbout(): This function calls automatically the
  undocumented Windows function ShellAbout().

      MsgAbout( cMsg, cTitle )  --> nil

* Bug fixed: pressing "," in a Get caused an error. It was a missing
  parentesis in the source code. Now it is ok. Thanks to Miguel
  Escarra.

* Missing feature: Method TWBrowse::LButtonDown was not calling the
  default TWindow:LButtonDown which evals the bLClicked codeblock.
  It has been corrected, so now it is possible to define actions
  for bLClicked.

* New clause READONLY or NOMODIFY for GET ... MEMO controls. Now it is
  possible to show a MEMO without letting the user modify its contents.
  Using the :Disable() method is not a proper way because it also
  disable the scrollbar, so there is no way to review all the memo
  contents. This READONLY clause stop the user for writting on it,
  but the entire memo can be reviewed with normal navigation keys and
  using the scrollbar.

* Enhancement: COLORS.CH. We have replaced the calls to RGB() for their
  equivalents numeric constant values. This increase the initialization
  speed in Dialog Boxes when using user colors. Thanks to Jose Gabriel!

* Enhancement: Radio buttons where not properly initializing when
  placing them over windows -instead of Dialog boxes-. We have also
  added the clause SIZE nWidth, nHeight for properly controlling sizes
  when placing RADIOs over windows -without using resources-.
  Thanks John Stolte!

* New: Error.log file automatically created when an application error
  occurrs. This will help the programmer to detect users runtime errors.
  Feel free to enhance your error.log reported information.
  See source function errsysw.prg.

* Missing: PIXEL clause added to GROUP controls. Thanks to Hans M.
  Polsterer.

* New function: Report( [ oLbx ] ). It generates an automatic and elegant
  paged report from the current workarea, or from the oLbx:cAlias
  specified as parameter.

  Sample:

  USE Clients             or         @ ... LISTBOX oLbx ... FIELDS ... or
  Report()                           REDEFINE LISTBOX oLbx ... FIELDS...

                                     Report( oLbx )

  A complete and professional report generated in just few seconds !!!
  See browse.prg for source code. ( Thanks Ignacio Ortiz, you are great! )

* Bug corrected: TWindow::UpdateCoors() was not working properly. Now
  it is ok! See source winapi rects.c : GETCOORS() to check how we
  calculate it now.

* Bug corrected: TWindow::GetFont() was not correctly creating a TFont
  object, now it is ok! We properly get its nHeigth, nWidth and lBold.
  Thanks to Manuel Pino !!!

* Enhancement: ButtonBars were not showing the 'white border' when
  a button pressed. It has been corrected!

* Bug corrected: TRadMenu:End() was calling Super:End() (and there was
  no super!) It is Ok now. Thanks to Miguel Oliveira.

* Enhancements: Under very extreme low memory conditions, sometimes
  we were producing an error "Not defined method :HandleEvent". It has
  been corrected. Now it is ok! It was related to SetProp() and GetProp()
  Windows API behavior. Also we have added also RemoveProp() calls.
  Thanks to Javier Alcazar!

* Enhancements: new clause ON CHANGE for GETs controls. Now it is
  possible to execute a codeblock everytime a key is pressed over a
  GET and you may perform any action and also you can avoid to
  further process that key:

    ... GET ...  ON CHANGE lMyFunc( nKey, nFlags, Self )

  lMyFunc() receives three parameters: nKey, nFlags, Self. And it
  has to return .t. if you want that key to be processed or .f. if
  you want to ignore it. Thanks to Javier Alcazar!

* New: PEN commands support:

    DEFINE PEN <oPen> ;
       [ STYLE <nStyle> ] ;
       [ WIDTH <nWidth> ] ;
       [ COLOR <nColor> ]

    To destroy a Pen, do:       oPen:End() or oPen:Release()

* New function: GetWinDir() returns the Windows directory in the
  computer.

* Browse enhancements:

  - Standard FiveWin browse.prg function has been enhanced to allow
  doble click in-cell editing. Review this sources to learn how
  to do easy in-cell editing in your applications.

  - New TBrowse:nAtCol() method. It returns the browse column correspon-
  ding to a pixel-column position. See Browse.prg how to use it to
  easily doing in-cell editing.

  - Enhacement: Now TBrowse-columns mouse resizing works even if the
  browse has been already scrolled to the right or left. Also the mouse
  cursor changes in those circunstances.

* New Report capabilities:

  - Automatic PREVIEW capability: Now you may review ALL your report
    on screen before sending it to the printer. You may go forward and
    backwards, and print only the pages that you want.

  - TO FILE ... output generation. Which produces an ascii output
    of the report.

  Many thanks to Ignacio Ortiz who is doing an excelent job enhancing
  FiveWin. Thanks Ignacio.

* DDE: Has been enhanced. New clause VALID. See DDE.ch. The VALID
  clause is executed when the connection is ending.

* New: CA-Ret DDE management: See SAMPLES CARET.PRG.

* Bug: REDEFINE GET ... MEMO ... UPDATE was not working properly. Now it
  is ok.

* clause ON CHANGE on Browses: You may NOT use SysRefresh() inside clauses
  ON CHANGE or it will produce an incorrect behavior when clicking on its
  scrollbars. We don't know why ? But it happens. Remember: Don't use
  SysRefresh() on Browse ON CHANGE.

* Modification: We have eliminated the ::aButtons DATA of the ButtonBar
  Class. Now we are using standard aControls DATA.

* VERY IMPORTANT: We have done a major modification in order to get better
  coherency and design simplicity, and because in previous versions of
  FiveWin there was confusion about :End(), :Release(), and RELEASE:

  Now there is just one RELEASE command, which gets translated to:

  RELEASE <ClassName> <oObject> => <oObject>:End(); <oObject> := nil

  You may RELEASE several same class objects at the same time:

  RELEASE <ClassName> <oObject1>, <oObject2>, ...

  The End() METHOD is a general purpouse ending system. :End() will check
  VALID clause if defined and in some circunstances :End() will generate a
  :Destroy() call, which will do the necessary resources cleaning, handles
  cleaning, etc...

  Windows generates for some objects the WM_DESTROY message, and now we call
  :Destroy() there automatically.

  Change all your :Release() calls to :End() calls. We apologize for the
  inconveniences and possible bugs you may get cause this, but we are
  convince this way will be much better and easy to understand from now on.

  Now, we may use :End() for ending any kind of object in FiveWin.

* Modifications and enhancements: TGet class has been modified to automatically
  update ::nPos DATA. Also, :SetPos() method has been modified.

* Incremental searches in browses: There is a demo of building incremental
  searches. See SAMPLES BUSSINES Customer.prg

* New printing capabilities: Beta-Testers of version 1.7 liked so much
  FW reports that they requested that power for any print-out, and it is
  done!

  Use:           PRINT ... PREVIEW
                    ...
                 ENDPRINT

  This means that you want to preview that printing job! Remember to include
  Preview.dll to access the resources used there. Try it! It is cool!

  From inside the preview you may step pages forward and backwards and you
  may print just any page you want. It is necessary that the SET TEMP=
  directory has been declared in autoexec.bat to send there the temporary
  files.

* Enhancement: Error.log. When a error ocurrs we automatically generate
  Error.log, as this will be very helpfull to track your users run-time
  mistakes and problems. We have enhanced the information we produce there,
  and we will like very much if you report us what kind of extra information
  you will like to find there.

* Modifications and enhancement: Main TWindow:HandleEvent() has been
  redesign to only call METHODs from inside it, this has two main direct
  benefits: HandleEvent() is really now Object Oriented, so you may
  easily inherit and redefine it and, also, this will let us in short to
  port it to C language. As HandleEvent() is one of the METHODs more often
  called, this will increase execution speed very much. We want FiveWin
  to be extremelly fast and small !!!

* SOMETHING REALLY GREAT !!!  We have coded Window:HandleEvent() all in
  C code. We were sure we were going to have better speed but... this is
  quite incredible !!! Try your applications again now! Uhhhhhh! What
  a really nice speed ! FiveWin is now extremelly fast !!! And we are
  working to make it faster and faster! Still we have to do the same in
  TDialog and TControl... so we are going to be much faster !!! <g>

* Going for more speed: We have written a 286 version of Objects.LIB and
  now has been placed inside FiveWin !!! Much better! We are preparing a
  new 386 version which will be added soon!

* Bug: Class TWorkArea:ReCall() has been corrected. Now it is ok! Thanks
  very much to Harry Vantassell who is really helping us sending many
  comments and enhancements. Thanks a lot Harry!

* Once more we really want to thank all our friends who are really helping
  us to go ahead. Five project is for all of us! Thanks so much,

  Thanks to our excelent distributors who are taking care of us like ours
  big brothers and excelent friends. Really thanks to:

         * John Stolte        - Hey, John, you are really good! <g>
         * Miguel Oliveira    - our big friend against 'coyotes' <g>
         * Max Bressel        - An excelent expert and friend!
         * Benito Martinez    - A superb manager to make Five a reality!
         * Gerassimus         - Our Greece great friend
         * Franco Scannapieco - A great friend in Italy
         * Julio, Ariel, and many, many others...

  And more and more people who are taking the Five Project with the same
  illusion as we do. All of you are the energy that fills our engines!
  Thanks!

* Enhancement: We have developed a new function ASend() which speed up
  very much the process of sending the same message to an array of
  objects -now we use it in TDialog:Init()- It avoids evaluating a
  code block and it is really fast! We want to speed up the Dialog Boxes
  now as much as possible, specially those that uses many, many controls
  (remember Windows API has a limit of 255 controls by Dialog Box! <g>)

* Ok, we did it: Now TWindow, TDialog and TControl :HandleEvent() METHODs
  are written in C language. Execution speed has been increased very much.
  Now you have a very good reason to keep your loved 386! <g>
  And as the whole system is getting more and more stable we plan to keep
  porting big parts to C language to increase speed and reduce size...

* File Manager Drop-Files management! Now you may easily perform actions
  when receiving dropped files from Window File Manager. See TestDrop.prg
  and TestDrp2.prg samples. You could never imagine this may be so easy!

* Enhancement: All FiveWin Msg...() functions, have been modified to
  automatically convert any kind of data into a string. So, now, when
  you want to display a Msg with a date, numeric, logical, etc... don't
  worry for converting it into a string.
  Let's be as easy and simple as possible! <g>



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