April 2008
=======
* Enhancement: Class TWindow Method MeasureItem() returns wider sizes for menuitems.
* Fix: Class TControl has been modified to properly process WM_UPDATEUISTATE message. This was causing some controls not to be seen when pressing Alt in Vista.
* New: Help CHM files support, using the same syntax and commands used with HLP files. Please review samples\TestHlp2.prg. We appreciate your tests feedback.
* Enhancement: New Class TGraph version by Alfredo Arteaga:
DATA nMaxVal to set the maximum value
DATA nMinVal lo set the minimum value,
DATA lLine sets a yellow line over bar graphics,
DATA lFull to fill the entire surface
New parameters nType and l3D in AddSerie():
AddSerie( aDat, cLegend, nColor, nType, l3D )
This allows to specify the type of graphic for each data serial
* Class TXBrowse enhancements and fixes:
1. Multi select works with MARQSTYLE_HIGHLCELL also. On Shift-Click, multi select is automatically activated and style is temporarily changed two MARQSTYLE_HIGHLROWMS. On normal click, the original style is restored.
2. ADD [<oCol>] TO <oBrw> is improved providing facilty to insert the column at a desired position optionally. Now ADD [<ocol>] TO <oBrw> AT nPos inserts the new coumn at nPos. Optionally instead of nPos a Column object also can be specified.
ADD [<oCol>] TO oBrw AT oOtherCol inserts the new column at the position of the oOtherCol. If AT <onAt> is not specified, the new column is added at the end as usual.
3. @ <row>, <col> XBROWSE and REDEFINE XBROWSE commands providing for sort orders also inline.
4. Creating xBrowse with @ <row>,<col> or REDEFINE XBROWSE COLUMNS ...... syntax or setting with SetRdd, SetAdo, SetArray, SetoDbf methods with columns provide the advantage of appropriately formatting the values ( european format is optional ), alignment, default setget blocks as bEditValue and default OnPostEdit blocks.
5. New Datas: lEdited and bOnRowLeave: If specified, this user specified codeblock is evaluated before leaving a row, if Data oBrw:lEdit is True. This is useful in case of buffered writes of entire row as in TDataBase or similar classes or for committing after checking the validity of entire rows. When SetADO or SetODbf are called, default suitable default code blocks are provided which can be overridden where necessary.
6. New Datas: bLock and bUnlock: Default OnPostEdit block uses these codeblocks. SetRDD method automatically sets these blocks to { |oBrw| ( oBrw:cAlias )->( dbrLock() ) } and { | oBrw | ( oBrw:cAlias )->( dbrUnlock() ) }. The default behaviour is adequate in most cases. If desired, in complex cases, appropriate codeblocks can be assigned from program.
7. New Data: nStretchCol: If specified, this column is streatched to fit the width of columns to fill the browse area. A column numer can be specified or one of the defined constants STRETCHCOL_NONE, STRETCHCOL_LAST, STRETCHCOL_WIDEST can also be assigned, for not stretching, stretching the last column or stretching the last widest text column. STRETHCOL_NONE is default for keeping backward comaptibility.
8. New Method: MoveCol( nFrom, nTo ): In contrast to SwapCols method which swaps the position of two columns, this method moves a column from position nFrom to the new position at nTo, shifting the columns in between to right or left accordingly.
9. New Method: FontSize( +/- nIncr ): To increase or decrease the font size of the entire browse. Column widths are automatically adjusted.
10. Bitmaps were not correctly algned center earlier. Now Bitmaps are correctly centered when bStrData is nil.
11. Bitmap painting on Header and Footer is improved.
12. Text data with trailing spaces was not correctly centered or right aligned properly with alignments AL_CENTER and AL_RIGHT. Now alignment works correctly.
13. Report Method: (a) If multiple rows are selected, only the rows selected are printed. Otherwise all rows are printed. This makes it convinient to select the rows to be printed.
(b) An array of column objects or visible column numbers can be specified in the addiional parameter aGroupBy for grouping the report.
14. ToExcel method:a) If multiple rows are selected, only the rows selected are exported. Otherwise all rows are exported. This makes it convinient to select the rows to be exported.
(b) By specifying a sorted column number as the new last parameter, it is poossible to have collapsible sub-group totals and grand totals.
(c) Multilingual formula support for French, Spanish, Italain, German and Portugese.
15. Improved support for ADT table data types.
16. New Method: (a) SetTree for browsing FWH ( LinkList ) trees, along with attached data. It is also possible to link navigation of tree to extrenal database.
(b) Auto tree feature. After xbrowse is set up normally for any summarised data in RDD, ADO or Array, SetTree method can be called. XBrowse automatically constructs the tree and sets the browse in Heirarchial Tree naviagaion mode. Review the sample TestXbr3.prg under menu Window->TreeBrowse.
17. TXBrwColumn New Data: lBmpStretch. If set to .t., and if bStrData is nil, the bitmap is stretched to fill the cell.
18. TXBrwColumn New Data: oBrush: If specified, this brush is used to paint the background of the column.
19. TXBrwColumn New Data: bPopUp: A codeblock can be specified to return a Popup Menu object when evaluated. On right click on the cell, this popup menu is executed.
20. TXBrwColumn New Method: Value (SETGET_: oCol:Vaue is equivalent to Eval( oCol:bEditValue) or Eval( oCol:bStrData ) when bEditValue is nil. oCol:value := newVal is equivalent to calling Eval( oCol:bEditValue, newvalue ) if bEditvalue is a SetGet block.
21. TXBrwColumn New Method: bIndent: If specified, the bitmaps and text are indented by the number of pixels returned by the codeblock on evaluation.
* Class TReport enhancement:
Text data with trailing spaces was not correctly centered or right aligned properly with alignments AL_CENTER and AL_RIGHT. Now alignment works correctly.
* TLinkList class:
New Methods: Expand( nLevel ), Collapse( nLevel ), nLevels()
* TtreeItem Class:
New Method: ItemNo(). Count from the beginning of the tree till the item, ignoring items in the closed trees.
* Trees.Prg
SummaryDataAsTree( bSkip, bEof, aGroups, bCargo ) --> oTree
function to build tree from summary data.
* Class TRichEdit new methods and functions:
METHOD GetBullet() -> Returns the state of bullets at the beginning of the current paragraph
METHOD GetNumbering() -> Returns the state of numbering at the beginning of the current paragraph
METHOD SetBullet() -> Sets bullets at the beginning of the selected paragraphs or in the insertion point
METHOD SetNumbering() -> Sets numbers at the beginning of the selected paragraphs or in the insertion point
METHOD ScrollCaret() -> Scrolls the caret into view in a rich edit control
METHOD InsertRTF() -> Insert a string with RTF codes
New function REGetDateTime() -> Retrieves an array with Date/Time in all available formats
Please review samples\Testrtf.prg using the new methods.
* Enhancement: Class TMdiFrame searches for a "Window" menuitem, and if found and other item has been specified, it is used to display the opened mdichild windows.
* Enhancement: Class TBtnBmp Method LButtonUp(). Now it is possible to use a popup menu with a btnbmp button placed on a dialog. Please review samples\TestBtnM.prg
* New: samples\TestPag3.prg shows using pages inside a main dialog box.
* Fix: Class TWBrowse is properly displaying the headers if Windows XP or Vista use the "classic" look.
* Fix: function TimeFromStart() was failing when an init procedure was generating an error. Now it is ok.
* New: Class TGif provides support for animated GIFs without the need for external DLLs. Please review samples\TestGif.prg. This is still a work in development, as not all GIFs are properly supported, and we plan to provide a better integration in next FWH builds.