New FTDN February 2020 (FWH 20.02)
Posted: Wed Feb 26, 2020 10:24 am
February 2020
=============
* GET
- ReadOnly: Even when a Get is readonly, the user can navigate to the
Get by mouseclick. This facility is provided to enable the user to
scroll horizontally to view the text overflowing the size of Get.
In some cases where the datasource is readonly, runtime error occurs
while exiting the Get.
http://forums.fivetechsupport.com/viewt ... =3&t=38289
Fixed.
- @Z picture format: With this picture format, empty numeric values should
be displayed as blanks when the get is not in focus. This is the standard
behaviour of Clipper and (x)Harbour. But FWH displays 0 in all gets with and
without focus. Now fixed. Gets not having focus display blanks.
http://forums.fivetechsupport.com/viewt ... =3&t=38282
- It is possible to edit only the time-part of a DateTime value by providing
the picture clause as "HH:MM:SS"
http://forums.fivetechsupport.com/viewt ... 67#p229767
- Picture clause "@!" for Password Get from resource is not converting
text to uppercase, since FWH1912. Fixed. (Works only for non Unicode apps)
- Sameway, if the Get in RC file has the flag ES_UPPERCASE, it is considered
as picture clause "@!"
- In password gets, setting of SET INSERT is respected for insert/overwrite.
- In password gets, Values of :VarGet(), :cText are as expected when queried
in bChange block
- Password Gets: The points raised in
http://forums.fivetechsupport.com/viewt ... =3&t=38415
Fixed.
* New: FW_ValidCreditCard( cardNo, @cIssuer, @cInfo ) --> lValidNum
cIssuer --> Visa, MasterCard, etc.
cInfo --> More details reg. bank, debit/credit, country, etc
* CenterMsgs()
- After calling this function all msg* dialogs are centered in
in the active window instead of desktop window.
But an unwated side-effect was that all normal dialogs were
also centered in the active window. This is fixed now.
This function now affects only Windows Api Msg* dialogs, i.e.,
MsgInfo(), MsgStop(), MsgAlert(), MsgYesNo(), MsgYesNoCancel(),
MsgRetryCancel(), MsgAbout() and also FWH functions MsgRun(),
MsgWait().
- After calling CenerMsgs(), calling MsgRun() was crashing. Fixed.
http://forums.fivetechsupport.com/viewt ... 35#p228435
- Enhanced Syntax
CenterMsgs() or CenterMsgs( .t. ) --> lPrevSet // Start Centered Msgs
CenterMsgs( .f. ) --> lPrevSet // Stop centered Msgs
CenterMsgs( NIL or non-logical value ) --> lCurrentSetting
- Language of prompts on Buttons:
SetMsgLangId( [nLangID] ) --> nPrevLangID
nLangID can be set to one of the constants available in
https://docs.microsoft.com/en-us/window ... nd-strings
* Enhancement MsgRun( cCaption, cTitle, bAction, oWndParent, aColor )
- New: 5th optional parameter aColor. Array of 2 colors, Text and back colors
- If oWndParent is speicified, the msg da=ialog is centered inside the
oWndParent. If ommitted, objeys the settings if CenterMsgs()
Enhancement MsgWait( cCaption, cTitle, nSeconds, oWndParent, aColor )
- New params: oWndParent, aColor
Same as MsgRun.
* Enhancement: function cFileUNC( cFile/cPath ) --> cUncName.
This function introdiced in FWH1805 returns UNC path only when connected.
Now enhanced to return the UNC path in case of persistent
connections even if not currently connected.
* New function FW_NetRmtName( cDrive ) --> cMappedUncName
Enhanced version of (x)Harbour's function NETRMTNAME()
Returns mapped UNC path of persistent connections not currently
connected also.
* XBrowse:
- Enhanced logic for evaluation of expressions used while browing
ADO and MySql.
When columns are defined as "NAME","QTY","QTY*RATE", etc., expressions
like "QTY*RATE" are internally translated as:
oRs:Fields( "QTY" ):Value * oRs:Fields( "RATE" ):Value, etc.
Logic for this translation is improved.
- New CLASSDATA lRestoreFilters INIT .f.
By default any filters set by incremental filters are retained when
xbrowse exits.
If this classdata is set to .T., while exiting xbrowse, the original
filters when starting the xbrowse are restored.
Note: This modifies the behavior introduced in FWH1906.
- ADO TIME field type (type:adTime): (x)Harbour ADO reads and writes
adTime fields (corresponding to TIME fieldtype) as DateTime values.
However, XBrowse while reading and writing data as DateTime variables
from/to the recordset, displays and editable as Harbour time strings
in the format "HH:MM:SS".
http://forums.fivetechsupport.com/viewt ... 67#p229767
* datarow.prg: TDataRow class
- Save() method made comaptible with SQLRDD.
- ADO TIME field type (type:adTime): (x)Harbour ADO reads and writes
adTime fields (corresponding to TIME fieldtype) as DateTime values.
However, XBrowse while reading and writing data as DateTime variables
from/to the recordset, displays and editable as Harbour time strings
in the format "HH:MM:SS".
- If the programmer writes his own get, he needs to provide picture clause
as "HH:MM:SS"
eg @ r,c GET oRec:timefield PICTURE "HH:MM:SS" <other clauses>
http://forums.fivetechsupport.com/viewt ... 67#p229767
* Printer.prg
- Fix: Method SayText(): Ampersand (&) contained in text is coverted as
underscrore of the next character while printing. Fixed.
Please see for details and fix to be applied in previous builds
http://forums.fivetechsupport.com/viewt ... =3&t=38485
* Control.prg
- Fix: Behavior of accelerator keys:
Pressing Alt-F4 should close the active window. Instead Alt-F4 is interpreted
as Alt-S and if a btnbmp's prompt contains "&S", that button click is activated
Alt-1 to 9 using keys on numeric pad are interpreted as ALT-A to ALT-I instead.
Fixed now.
- DATA bSysKeyDown. If this codeblock is specified for any control, this is
evaluated as Eval( ::bSysKeyDown, nVirtualKeyCode, nFlags, Self ) when the user
presses any Alt-Key combination. At present, the return value is ignored.
Now, if the return value is 0, it is treated that the key is handled and is
not further processed.
=============
* GET
- ReadOnly: Even when a Get is readonly, the user can navigate to the
Get by mouseclick. This facility is provided to enable the user to
scroll horizontally to view the text overflowing the size of Get.
In some cases where the datasource is readonly, runtime error occurs
while exiting the Get.
http://forums.fivetechsupport.com/viewt ... =3&t=38289
Fixed.
- @Z picture format: With this picture format, empty numeric values should
be displayed as blanks when the get is not in focus. This is the standard
behaviour of Clipper and (x)Harbour. But FWH displays 0 in all gets with and
without focus. Now fixed. Gets not having focus display blanks.
http://forums.fivetechsupport.com/viewt ... =3&t=38282
- It is possible to edit only the time-part of a DateTime value by providing
the picture clause as "HH:MM:SS"
http://forums.fivetechsupport.com/viewt ... 67#p229767
- Picture clause "@!" for Password Get from resource is not converting
text to uppercase, since FWH1912. Fixed. (Works only for non Unicode apps)
- Sameway, if the Get in RC file has the flag ES_UPPERCASE, it is considered
as picture clause "@!"
- In password gets, setting of SET INSERT is respected for insert/overwrite.
- In password gets, Values of :VarGet(), :cText are as expected when queried
in bChange block
- Password Gets: The points raised in
http://forums.fivetechsupport.com/viewt ... =3&t=38415
Fixed.
* New: FW_ValidCreditCard( cardNo, @cIssuer, @cInfo ) --> lValidNum
cIssuer --> Visa, MasterCard, etc.
cInfo --> More details reg. bank, debit/credit, country, etc
* CenterMsgs()
- After calling this function all msg* dialogs are centered in
in the active window instead of desktop window.
But an unwated side-effect was that all normal dialogs were
also centered in the active window. This is fixed now.
This function now affects only Windows Api Msg* dialogs, i.e.,
MsgInfo(), MsgStop(), MsgAlert(), MsgYesNo(), MsgYesNoCancel(),
MsgRetryCancel(), MsgAbout() and also FWH functions MsgRun(),
MsgWait().
- After calling CenerMsgs(), calling MsgRun() was crashing. Fixed.
http://forums.fivetechsupport.com/viewt ... 35#p228435
- Enhanced Syntax
CenterMsgs() or CenterMsgs( .t. ) --> lPrevSet // Start Centered Msgs
CenterMsgs( .f. ) --> lPrevSet // Stop centered Msgs
CenterMsgs( NIL or non-logical value ) --> lCurrentSetting
- Language of prompts on Buttons:
SetMsgLangId( [nLangID] ) --> nPrevLangID
nLangID can be set to one of the constants available in
https://docs.microsoft.com/en-us/window ... nd-strings
* Enhancement MsgRun( cCaption, cTitle, bAction, oWndParent, aColor )
- New: 5th optional parameter aColor. Array of 2 colors, Text and back colors
- If oWndParent is speicified, the msg da=ialog is centered inside the
oWndParent. If ommitted, objeys the settings if CenterMsgs()
Enhancement MsgWait( cCaption, cTitle, nSeconds, oWndParent, aColor )
- New params: oWndParent, aColor
Same as MsgRun.
* Enhancement: function cFileUNC( cFile/cPath ) --> cUncName.
This function introdiced in FWH1805 returns UNC path only when connected.
Now enhanced to return the UNC path in case of persistent
connections even if not currently connected.
* New function FW_NetRmtName( cDrive ) --> cMappedUncName
Enhanced version of (x)Harbour's function NETRMTNAME()
Returns mapped UNC path of persistent connections not currently
connected also.
* XBrowse:
- Enhanced logic for evaluation of expressions used while browing
ADO and MySql.
When columns are defined as "NAME","QTY","QTY*RATE", etc., expressions
like "QTY*RATE" are internally translated as:
oRs:Fields( "QTY" ):Value * oRs:Fields( "RATE" ):Value, etc.
Logic for this translation is improved.
- New CLASSDATA lRestoreFilters INIT .f.
By default any filters set by incremental filters are retained when
xbrowse exits.
If this classdata is set to .T., while exiting xbrowse, the original
filters when starting the xbrowse are restored.
Note: This modifies the behavior introduced in FWH1906.
- ADO TIME field type (type:adTime): (x)Harbour ADO reads and writes
adTime fields (corresponding to TIME fieldtype) as DateTime values.
However, XBrowse while reading and writing data as DateTime variables
from/to the recordset, displays and editable as Harbour time strings
in the format "HH:MM:SS".
http://forums.fivetechsupport.com/viewt ... 67#p229767
* datarow.prg: TDataRow class
- Save() method made comaptible with SQLRDD.
- ADO TIME field type (type:adTime): (x)Harbour ADO reads and writes
adTime fields (corresponding to TIME fieldtype) as DateTime values.
However, XBrowse while reading and writing data as DateTime variables
from/to the recordset, displays and editable as Harbour time strings
in the format "HH:MM:SS".
- If the programmer writes his own get, he needs to provide picture clause
as "HH:MM:SS"
eg @ r,c GET oRec:timefield PICTURE "HH:MM:SS" <other clauses>
http://forums.fivetechsupport.com/viewt ... 67#p229767
* Printer.prg
- Fix: Method SayText(): Ampersand (&) contained in text is coverted as
underscrore of the next character while printing. Fixed.
Please see for details and fix to be applied in previous builds
http://forums.fivetechsupport.com/viewt ... =3&t=38485
* Control.prg
- Fix: Behavior of accelerator keys:
Pressing Alt-F4 should close the active window. Instead Alt-F4 is interpreted
as Alt-S and if a btnbmp's prompt contains "&S", that button click is activated
Alt-1 to 9 using keys on numeric pad are interpreted as ALT-A to ALT-I instead.
Fixed now.
- DATA bSysKeyDown. If this codeblock is specified for any control, this is
evaluated as Eval( ::bSysKeyDown, nVirtualKeyCode, nFlags, Self ) when the user
presses any Alt-Key combination. At present, the return value is ignored.
Now, if the return value is 0, it is treated that the key is handled and is
not further processed.