Page 1 of 1

New FTDN February/Febrero 2010 (10.2)

Posted: Thu Feb 25, 2010 10:00 am
by Antonio Linares
February 2010
=============

* Enhancement: Class TWindow Method ShowToolTip(), max width of tooltips increased to 300 pixels.

* Additional libraries to be linked: For xHarbour ct.lib is also required to be linked. For Harbour, hbct.lib and
xhb.lib need to included. Buildh.bat and Buildx.bat are revised.

* Enhancement: XBrowse: DATA nProgTot of TXBrwColumn for progress bars can now be a Codeblock also returning a
numeric value, This codeblock is evaluated with column object as parameter.
See revised sample xbrprogb.prg in \fwh\sampls folder.

* Improvements: XBrowse.prg: method maketotals() now is improved to calculate aggregates SUM, MAX, MIN, COUNT, AVERAGE,
STDEV or STDEVP depending on the DATA oCol:nFooterType == AGGR_SUM/AGGR_TOTAL, AGGR_MAX, AGGR_MIN, AGGR_COUNT,
AGGR_AVERAGE/AGGR_AVG, AGGR_STDEV/AGGR_STD or AGGR_STDEVP. Functionality is the same as Excel functions SUM(),
MAX(), MIN(), COUNT(), AVERAGE(), STDEV(), STDEVP(). AGGR_COUNT() can be used for columns of any datatype, resulting
in count of non nil values. All other functions can be used for numeric columns only. Computation igonores non
numeric values in the column. Inline edit automatically adjusts the aggregate results and refreshes the footers.

- Export to excel in english installation also exports appropriate aggregation formula.
- Export to Excel now obeys column alignment
- clause CLASS in XBROWSE command can be used either from class derived from TxBrowse or TXBrwColumn.

* Fix: XBrowse.prg: Incremental seek on Arrays works only when columns are added sequentially and that too in the
SetArray method. Now fixed. Incremental seek works irrespective of the order of the array columns if lAutoSort is
set to true in SetArray method.

* Fix: XBrowse.prg: Adding non existing bitmap file with methods AddBitmap() or AddBmpFile result in runtime error.
This is fixed. ( Bug introduced in FWH 10.1 )

* Fix: Class TScrollBar Method SetRange(), function SetScrollRange(). Thanks to Enrico!

* Enhancement: Class TRibbonBar greatly enhanced Method KeybMode(). Please notice that Class TWindow has been
modified to support keyboard Alt process by the RibbonBar.

* Enhancement: Class TPrinter Methods CmSay(), MmSay(), InchSay() were not respecting the nWidth parameter.
Now they are fine. Thanks to Michel for the reminder! :-)

* Enhancement: All calls to function ChildLevel() in FWH source code have been replaced with IsKindOf() method call.
This makes a faster code.

* Enhancement: FWPPC, all calls to ChildLevel() replaced with call to IsKindOf() method.

* Enhancement: Class TRadMenu new Method GoPrevNext( lNext ) to set focus to a previous or a next radio item.
Methods GoPrev() and GoNext() modified to use the Method GoPrevNext(). Previous versions were not respecting
disabled radio items. Now it is ok. Thanks to Hernan!

* TDatabase class Improvements:
(a) New Data Cargo ( for use by programemrs )
(b) New Method OrdDescend(..) with same syntax as OrdDescend function. This method
enables xbrowse to toggle ascending and descending orders.
(c) New Method
AddCol( cColName, bBlock, [cType], [nLen], [nDec], [cPic], [cTag ] ) --> nColPos
for creationg of Calculated Columns.
Assuming that the DBF contains fields QUANTITY and RATE, we can create a
calculated column SALEAMT as QUANITY * RATE. The Syntax is :

oDbf:AddCol( 'SaleAmt', { |Self| ::Quantity * ::Rate }, 'N', 14, 2 ) --> nColPos
Now, oDbf:SaleAmt gives the product of quantity and rate.
In the above example, the codeblock is readonly. SETGET codeblocks also can be
specified like,
{ |Self,x| If( x != nil, ::Rate := x / ::Quantity ), ::Quantity * ::Rate }
If this codeblock is specifed, oDbf:SaleAmt := 10000 results in altering the
Rate field as 10000 / Quantity

This new calculated column can be used in Says, Gets or Browses like any other column.
Optionally picture and Tagnames can be specified which will be automatically used
by XBrowse.

Alternatively, in case an index tag is already created with a complex expression,
a calculated column can be defined by specififying the tag name.

In case an idex tag by name 'Sales' is already created by expression (QUANTITY*RATE),
a calculated column can be created which uses this expression:

oDbf:AddCol( 'SaleAmt', nil, 'N', 14, 2, nil, 'Sales' )
This new column created uses the index expression of 'Sales' tag.

(d) New method
MapCol( <cFldName>, <cNewName> ) --> lSuccess
Alternative syntax:
MapCol( { { <cFld1>, <cNew1> }, { .. }, { <cFldN>, <cNewN> } } ) --> lSuccess

Example: oDbf:MapCol( 'FLD01', 'CustName' )
This column can be referred to as oDbf:Custname or oDbf:fld01
This is useful where the field names in the DBF are not self explantory and
we need clear names in the application.
For example, if we have DBF with fields FLD1, FLD2, FLD3,etc., we can map the
columns to meaningful names and use the new names in the program code.
oDbf:MapCol( {{ 'FLD1', 'CustID' }, { 'FLD2', 'CustName' }, { 'FLD3', 'City' } } )
(e) New method: SetXBrowse(). This method is used by TXBrowse to set TDatabase. This function is not
normally not required to be used by application programs directly.

* New: Function IfNil(...) -> first non-nil parameter. (Source: fwh\source\function\valblank.prg)
Usage: IfNil( p1, ... pN ) or IfNil( { a1. ..., aN } ) --> first non-nil value.

* Enhancement: Improved sample xbrwdisk.prg.

* Enhancement: functions CallDll() and CallDll32() have been renamed as FWCallDll() and FWCallDll32() to
avoid symbols clash with Harbour. Please recompile all your PRGs and check if you are directly calling these
functions and change their names!

* New: FWPPC 10.2, totally revised to have full compatibility with Harbour 2.0 and to share as much code
with FWH as possible. We have modify many files to make them Unicode compatible for the next FWH with Unicode
support. Next FWPPC build will be based on Windows vce 2007. We are already working on it :-)

* New: Added all.bat batch file in samples to build all FWH examples at once!

* Enhancement: TreeItem.Prg. Method SetTree( oTree ) now adds oTree only if the oTree is not empty.

* New: DATA bPostEnd of class TMdiChild in mdichild.prg:
Any code, mostly clean up code, to be executed after an mdichild window is closed can be assigned to this
codeblock. This is in contrast to bValid, which is executed before the window and all the controls are closed.
For example, it may be safer to close dbfs, recordsets, etc used by the controls in the bPostEnd codeblock
rather than in the bValid codeblock. bPostEnd is evaluated after the mdichild is closed, without any parameters.
Window object or any controls of the window should not be referred in this codeblock because they are no more
available when this codeblock is executed.

* Fix: Report.prg: Fixed a runtime error when TOTAL clause is used and some of the columns are MEMO columns

* Fix: Xbrowse.prg method Report(): Column size is not forced when picture clause is specified.

* Fix: Rebars and ToolsBars are working properly again. They were broken in 10.1 build. Now they are fine.
Please review FWH\samples\Rebars.Prg

* New: FWH Debugger developed using FWH ! Thanks to Carles Aubia for this great contribution! To test it simply
go to FWH\samples and type: buildh.bat tutor01 /b (or buildx.bat). The debugger will be shown automatically. Warning: The debugger is not working with xHarbour builder yet. We are working to solve this.

* Fix: TXBrowse method SetTree: Specifying an array of bitmaps/resources longer than 3 was resulting in runtime error. Now fixed. Also any number of bitmaps/resources can be loaded in this function and can be used in the program.

* New: Class TTitle Method Redefine(). Command REDEFINE TITLE ...implemented for TTitle objects too.

* Fix: fixed bug in Class TXBrowse, using function fnAddBitmap() cResource parameter can be a resource ID like
a number, and now check if it is a GDI object.

* New: function IsGdiObject( hGDI ) checks if a handle is a valid GDI object.

* Enhancement: New Clauses in TITLE commands,
+ Clause GRADIENT <Gradient>, array with gradient fill format
+ Clause VGRAD, VERTICALGRADIENT, VERTICALG to set a vertical gradient
+ Clause BRUSH oBrush to set a brush

* Enhancement: Added MARQUEE clause to PROGRESS command. Please review FWH\samples\Progres2.Prg

* New: New function __ChangeStyleWindow( hWnd, nStyle, nStyleType, lAdd ) in etc.prg, provided by:
Hernan Diego Ceccarelli! Itallows to change the style of a window, dialog or control in runtime.

* XBROWSE:
(a) TMySql: XBROWSE .. OBJECT .. command was not correctly identifying TMySqlQuery/Table classes.
Now fixed. In somecases setting TMySql object columns was resulting in runtime error. Fixed

* Fix: There was a bug in winsock.c since we adapted winsock.c to work with Harbour 2.0. Now it is ok.

Re: New FTDN February/Febrero 2010 (10.2)

Posted: Sat Mar 13, 2010 9:34 pm
by El Loco
Antonio querido, para cuando en español ???

Re: New FTDN February/Febrero 2010 (10.2)

Posted: Wed Mar 17, 2010 9:15 pm
by El Loco
Antonio querido, para cuando en español ???

Re: New FTDN February/Febrero 2010 (10.2)

Posted: Wed Mar 17, 2010 9:44 pm
by Bayron
Hey Loco,
Intenta esto mientras tanto, algunas frases no se traducen correctamente, pero se entiende lo que dice....


http://translate.google.com/translate?h ... 6t%3D18194

Re: New FTDN February/Febrero 2010 (10.2)

Posted: Thu Mar 18, 2010 9:26 pm
by El Loco
Gracias Byron.... pero no es el caso.
Un gran abrazo.
El Loco =>))