New FTDN July/Julio (FWH 23.07)
Posted: Thu Jul 27, 2023 6:13 pm
May, June, July 2023
====================
* Enhancement: function SetClipboardData() supports CF_HDROP. Here there is a working example - 1:
#include "FiveWin.ch"
#define CF_HDROP 15
function Main()
local oWnd, hDrop
DEFINE WINDOW oWnd
MsgInfo( OpenClipboard( oWnd:hWnd ) )
MsgInfo( SetClipboardData( CF_HDROP, { "tutor1.prg", "tutor02.prg", "tutor03.prg" } ) )
hDrop = GetClpData( CF_HDROP )
XBROWSER DragQueryFiles( hDrop )
CloseClipboard()
oWnd:End()
return nil
b. Working example-2:
#include "FiveWin.ch"
function Main()
? FW_CopyToClipBoard( { "tutor1.prg", "tutor02.prg", "tutor03.prg" } )
XBROWSER FW_GetClipBoardData()
return nil
* New: Class TWebView Method Center(). You can center a webview object simply doing oWebView:Center()
* New: vs2022_make.zip added in FWH\makes to build using Visual Studio Community 2022
* New: hbmk2_bcc64.zip in FWH\makes to build using Borland bcc 64 bits
* New: FWH and FWH64 built using the new gcc 8.5 32 and 64 bits. Thanks to Santo!
* Enhancement: webview.dll and WebView2Loader.dll have been updated to the most recent version and
we have included the changes for set_user_agent() and commented out the call to PostQuitMessage()
that was closing the FWH app when closing webview objects. Explained here:
viewtopic.php?p=261258&#p261258
webview.dll and WebView2Loader.dll are placed in FWH\samples and the 64 bits versions are placed at:
FWH\dll\webview64\
* New: samples\webview1.prg shows how to use an existing window (or dialog, or control) to create a
webview on such window.
* New: samples\webview3.prg shows how to place a webview inside a dialog.
* New: samples\webvieweval.prg shows how to use oWebView:Eval( cJavaScript )
* New: samples\webviewbody.prg shows how to reach the document.body.outerHTML
* New: METHOD InjectJavascript( cScript ) CLASS TWebView by by Charles KWON ( charleskwonohjun@gmail.com )
This allows to place your javascript code in public websites and do incredible things!
* New: function IsWebViewAvailable() --> lAvailable, it allows to check if the PC is ready to use
webview.
* New: samples\webviewlogin.prg shows how to use the web as the FWH app GUI using webview.
* New: CLASS TWebView METHOD OpenDevToolsWindow(). Please review samples\webview.prg and webvieweval.prg
* Enhancement: TListView class is now made Unicode compatible
Try samples\testvie1.prg
* LinkList: Method Sort( [lAsc], [lRecurse], [nCol] ) enhanced with
three new parameters.
Param.1 lAsc: .T. or "A" for ascending sort and .F. OR "D"
for descending sort.
Or, this parameter can be a codeblock also.
Default: Ascending sort
Param.2 lRecurse: Default .f. for backward compatibility
If set to .T. all subtrees are also sorted
Param.3 nCol: Default 0: Sorts on nCol of Cargo Array
* TreeItem: oItem[ n ] returns oItem:Cargo[ n ] if oItem:Cargo
is an array and n is withing the size and if n is '0' returns
oItem:cPromt and else returns 'nil'
If n is within the range, oItem[ n ] := newValue works too.
* Enhanced XEval( uVar, p1, p2, ... )
Now uVar can also be function name ending with "()".
If the named function is linked, the function is executed
with params p1,p2,... etc.
XEval( {|c| Upper( c ) }, "abc" ) --> ABC
XEval( "Upper()", c ) --> ABC
If uVar is neither a codeblock or a valid function name, uVar
itself is returned
* fw_stricmp() treats nil as lower than other datatypes
* New: We know that it is a tedious task to write help for an app, so
we have implemented a real simple way to do it using FWH:
SetAutoHelp( lOnOff, lEditable ) // lEditable is .T. by default
just call that function at the beginning of your app, and press F1 on any
control of your FWH app, you will be prompted to write the help for it, using
richedit text and the next time you press F1 the help will be shown! FWH
automatically creates a help.dbf with index and updates it properly
* TDataRow class: Image fields are displayed as images, though they
can not be modified and saved yet.
* XBROWSE:
- RTE while browsing PostGre query due to a bug in
method SetPostGreCol() fixed.
- If recordset is closed when setting up is setup, it
is opened by xbrowse for browing.
- New DATA bmPrevious (previous bookmark)
bChange can now access the previous Bookmark with
oBrw:bmPrevious
- Fixes in SetRDD() in case of very rare usages.
- Fix:SetTree(). Auto-generation of Tree with Array data is
crashing since version 2104 now fixed.
viewtopic.php?f=3&t=43494
* New: function EnumWindows( bEnumWindow [,nLParam] ). Enumerates all top-level
windows on the screen by passing the handle to each window, in turn, to a codeblock
where the handle of each window is provided and an optional nLParam value.
* ScrollMsg: NOBORDER clause added
* TGET:
- Picture claise "@M c1,c2,..." implemented like
FoxPro.
viewtopic.php?f=3&t=43407&hilit=foxpro
- RTE when ES_UPPERCASE style is specified in RC file
for non character gets is avoided.
viewtopic.php?f=3&t=43453
- Compatible with accented characters like German Umlauts even when
FW_SetUnicode(.t.). The problem arises where certain accented chars
have different notations in ANSI and UTF8.
viewtopic.php?f=3&t=43352&p=262129#p262129
* Command ? (WQout() function) enhanced. Displaying together
strings containing characters with different notiation in ANSI
and UTF8 was displaying garbage. Fixed.
* new functions AnsiToUtf8( cStr ) and Utf8ToAnsi( cStr )
Useful in case of some WU language characters like German
Umlauts who are encoded differently in ANSI and Utf8.
====================
* Enhancement: function SetClipboardData() supports CF_HDROP. Here there is a working example - 1:
#include "FiveWin.ch"
#define CF_HDROP 15
function Main()
local oWnd, hDrop
DEFINE WINDOW oWnd
MsgInfo( OpenClipboard( oWnd:hWnd ) )
MsgInfo( SetClipboardData( CF_HDROP, { "tutor1.prg", "tutor02.prg", "tutor03.prg" } ) )
hDrop = GetClpData( CF_HDROP )
XBROWSER DragQueryFiles( hDrop )
CloseClipboard()
oWnd:End()
return nil
b. Working example-2:
#include "FiveWin.ch"
function Main()
? FW_CopyToClipBoard( { "tutor1.prg", "tutor02.prg", "tutor03.prg" } )
XBROWSER FW_GetClipBoardData()
return nil
* New: Class TWebView Method Center(). You can center a webview object simply doing oWebView:Center()
* New: vs2022_make.zip added in FWH\makes to build using Visual Studio Community 2022
* New: hbmk2_bcc64.zip in FWH\makes to build using Borland bcc 64 bits
* New: FWH and FWH64 built using the new gcc 8.5 32 and 64 bits. Thanks to Santo!
* Enhancement: webview.dll and WebView2Loader.dll have been updated to the most recent version and
we have included the changes for set_user_agent() and commented out the call to PostQuitMessage()
that was closing the FWH app when closing webview objects. Explained here:
viewtopic.php?p=261258&#p261258
webview.dll and WebView2Loader.dll are placed in FWH\samples and the 64 bits versions are placed at:
FWH\dll\webview64\
* New: samples\webview1.prg shows how to use an existing window (or dialog, or control) to create a
webview on such window.
* New: samples\webview3.prg shows how to place a webview inside a dialog.
* New: samples\webvieweval.prg shows how to use oWebView:Eval( cJavaScript )
* New: samples\webviewbody.prg shows how to reach the document.body.outerHTML
* New: METHOD InjectJavascript( cScript ) CLASS TWebView by by Charles KWON ( charleskwonohjun@gmail.com )
This allows to place your javascript code in public websites and do incredible things!
* New: function IsWebViewAvailable() --> lAvailable, it allows to check if the PC is ready to use
webview.
* New: samples\webviewlogin.prg shows how to use the web as the FWH app GUI using webview.
* New: CLASS TWebView METHOD OpenDevToolsWindow(). Please review samples\webview.prg and webvieweval.prg
* Enhancement: TListView class is now made Unicode compatible
Try samples\testvie1.prg
* LinkList: Method Sort( [lAsc], [lRecurse], [nCol] ) enhanced with
three new parameters.
Param.1 lAsc: .T. or "A" for ascending sort and .F. OR "D"
for descending sort.
Or, this parameter can be a codeblock also.
Default: Ascending sort
Param.2 lRecurse: Default .f. for backward compatibility
If set to .T. all subtrees are also sorted
Param.3 nCol: Default 0: Sorts on nCol of Cargo Array
* TreeItem: oItem[ n ] returns oItem:Cargo[ n ] if oItem:Cargo
is an array and n is withing the size and if n is '0' returns
oItem:cPromt and else returns 'nil'
If n is within the range, oItem[ n ] := newValue works too.
* Enhanced XEval( uVar, p1, p2, ... )
Now uVar can also be function name ending with "()".
If the named function is linked, the function is executed
with params p1,p2,... etc.
XEval( {|c| Upper( c ) }, "abc" ) --> ABC
XEval( "Upper()", c ) --> ABC
If uVar is neither a codeblock or a valid function name, uVar
itself is returned
* fw_stricmp() treats nil as lower than other datatypes
* New: We know that it is a tedious task to write help for an app, so
we have implemented a real simple way to do it using FWH:
SetAutoHelp( lOnOff, lEditable ) // lEditable is .T. by default
just call that function at the beginning of your app, and press F1 on any
control of your FWH app, you will be prompted to write the help for it, using
richedit text and the next time you press F1 the help will be shown! FWH
automatically creates a help.dbf with index and updates it properly
* TDataRow class: Image fields are displayed as images, though they
can not be modified and saved yet.
* XBROWSE:
- RTE while browsing PostGre query due to a bug in
method SetPostGreCol() fixed.
- If recordset is closed when setting up is setup, it
is opened by xbrowse for browing.
- New DATA bmPrevious (previous bookmark)
bChange can now access the previous Bookmark with
oBrw:bmPrevious
- Fixes in SetRDD() in case of very rare usages.
- Fix:SetTree(). Auto-generation of Tree with Array data is
crashing since version 2104 now fixed.
viewtopic.php?f=3&t=43494
* New: function EnumWindows( bEnumWindow [,nLParam] ). Enumerates all top-level
windows on the screen by passing the handle to each window, in turn, to a codeblock
where the handle of each window is provided and an optional nLParam value.
* ScrollMsg: NOBORDER clause added
* TGET:
- Picture claise "@M c1,c2,..." implemented like
FoxPro.
viewtopic.php?f=3&t=43407&hilit=foxpro
- RTE when ES_UPPERCASE style is specified in RC file
for non character gets is avoided.
viewtopic.php?f=3&t=43453
- Compatible with accented characters like German Umlauts even when
FW_SetUnicode(.t.). The problem arises where certain accented chars
have different notations in ANSI and UTF8.
viewtopic.php?f=3&t=43352&p=262129#p262129
* Command ? (WQout() function) enhanced. Displaying together
strings containing characters with different notiation in ANSI
and UTF8 was displaying garbage. Fixed.
* new functions AnsiToUtf8( cStr ) and Utf8ToAnsi( cStr )
Useful in case of some WU language characters like German
Umlauts who are encoded differently in ANSI and Utf8.