September 2025
==============
* Summary: FWH Samples Folder Enhancement Overview
The samples folder has been significantly reorganized with over 1,400 sample files demonstrating
the latest FWH capabilities. Key additions include:
- **AI & Machine Learning** (38 samples): Complete collection of AI integration examples including
transformer models, neural networks, ChatGPT, OpenAI, Gemini, Ollama, DeepSeek, Kimi AI,
and agent-based applications (agentdb.prg, transformer.prg, nn*.prg series)
- **Email Integration** (10+ samples): OAuth-based email connectivity for Outlook and Gmail
with modern authentication methods (outlook/testoutlook.prg, gmail/testgmail.prg)
- **UI Components** (100+ samples): Extensive collection of modern UI controls including
scrolling panels, navigation controls, layout managers, charts, and visual effects
- **Database & Reporting** (50+ samples): Enhanced database connectivity samples for MySQL,
MariaDB, PostgreSQL with advanced reporting capabilities via EasyReport and MyRpt
- **Web Technologies** (20+ samples): WebView2 integration, web scraping, HTML generation,
and modern web-based interfaces
- **Miscellaneous** (690+ samples): Comprehensive collection covering graphics, multimedia,
system integration, networking, printing, and general programming techniques
* Fix: Resolved compilation warnings and errors in `transformer.prg` and `xbrowse.prg`.
- `transformer.prg`: Addressed ambiguous references, missing method declarations (New, Forward, Backward), and duplicate variable declarations.
- `xbrowse.prg`: Fixed ambiguous references and missing method declarations (_InitProperties, _InitData, _InitEvents), and refactored initialization logic.
* Enhancement: Class Transformer code Refactoring and improved.
* Fix: TGet in UTF8 mode (including references to the source code in tget.prg).
Solution: When continuously using the New Phonetic Input Method to input several Chinese characters, pressing [Enter] works
fine the first time, but on the second time when inputting several more Chinese characters and pressing [Enter], the cursor
returns to the position after the first input of Chinese characters, moves right, and then jumps to the position after the
last Chinese character +1.
Solution: Fix the issue where pressing the keyboard [Insert] key causes the cursor to jump to the first position.
Solution: When selecting and cutting with the mouse, the cursor jumps to the first position; it should correctly stay at the
starting position of the selected area.
Solution: If using PICTURE, for example: PICTURE "@R 9999.99.99", selecting and cutting with the mouse causes the data and
format to disappear.
Solution: If using PICTURE, for example: PICTURE "@R 9999.99.99", selecting and pasting with the mouse causes the data and
format to become messed up.
Solution: For strings without PICTURE that contain English and numbers, the length calculation is incorrect.
Solution: Cursor error issues with UTF8 strings for VK_BACK, VK_LEFT, VK_RIGHT.
Solution: When selecting data to the right with VK_DELETE, then pressing [delete] and then pressing the keyboard right arrow
[right], the cursor jumps several spaces.
Solution: Garbled text issues under ANSI when deleting or back-deleting.
July-August 2025
================
* New: Added UPDOWN, IPADDRESS, and HOTKEY control command definitions to fivewin.ch
Three new preprocessor commands are now available for Windows common controls:
- UPDOWN: Support for UpDown (spin) controls with BUDDY clause for edit association,
RANGE for min/max limits, and POS for initial value
Sample usage:
@ 4, 15 UPDOWN oUpDown OF oWnd BUDDY oEdit RANGE 0, 100 POS nValue ON CHANGE UpdateDisplay()
- IPADDRESS: Support for IP Address input controls with VAR clause for variable binding
Sample usage:
@ 4, 10 IPADDRESS oIPAddr VAR cIPAddress OF oWnd SIZE 100, 20 ON CHANGE UpdateDisplay()
- HOTKEY: Support for Hot Key input controls for shortcut key assignment
Sample usage:
@ 4, 10 HOTKEY oHotKey OF oWnd SIZE 120, 20 ON CHANGE UpdateDisplay()
These commands follow established FiveWin patterns and support standard clauses like
SIZE, OF, PIXEL, MESSAGE, WHEN, VALID, and ON CHANGE for event handling.
Please review the sample applications: updown.prg, ipaddr.prg, and hotkey.prg
* New: Added PAGER and SYSLINK control command definitions to fivewin.ch
Two additional preprocessor commands are now available for Windows common controls:
- PAGER: Support for scrollable container controls that can hold child windows with
automatic scroll buttons and flexible navigation
Sample usage:
@ 4, 10 PAGER oPager CHILD oChild OF oWnd SIZE 300, 120 HORIZONTAL AUTOSCROLL ON CHANGE UpdateDisplay()
- SYSLINK: Support for modern hyperlink controls with HTML-like markup (Vista+)
for rich text links with multiple URLs per control
Sample usage:
@ 4, 10 SYSLINK oLink TEXT "Visit <A HREF='https://www.fivetechsoft.com'>FiveTechSoft</A>" OF oWnd SIZE 300, 20 ON CLICK HandleClick()
These commands follow established FiveWin patterns and support standard clauses like
SIZE, OF, PIXEL, MESSAGE, WHEN, ON CHANGE/ON CLICK for event handling. PAGER supports
HORIZONTAL, AUTOSCROLL, DRAGDROP, BORDER, BUTTONSIZE, and BACKCOLOR clauses. SYSLINK
supports TEXT, URL, TRANSPARENT, VISUALSTYLE, and other styling options.
Please review the sample applications: pager.prg and syslink.prg
* Fix: TMultiGet Unicode problem. Thanks to Hakan Önemli
* New: samples\outlook\testoutlook.prg
A new example demonstrating how to use the TOutlookMail and TOAuth classes to connect to Office365 via OAuth for sending
emails. You need to configure the "client_id", "client_secret" and "redirect_uri" with your oAuth2 settings (from Microsoft
settings)
* Fix: Proper Unicode support for Windows API ToolBars. Please review samples\richard.prg
* Fix: Print Preview fix for FWH 64 bits reported in:
https://forums.fivetechsupport.com/viewtopic.php?t=45777
* Enhancement: Class TScrollPanel provide horizontal scrolling capabilities too.
Please review samples\graphscr.prg demo.
* New: function LoadStringW() to load Unicode strings from resources string tables. Example of use:
#include "FiveWin.ch"
function Main()
MsgInfoW( LoadStringW( GetResources(), 30 ) ) // where 30 is the string ID
return nil
* New: function LoadStringAuto( hInstance, nId ) automatically detects if a string to be loaded is
Unicode and if so, it loads it as Unicode.
* New: functions FW_HasControlChars( cString ) --> lYesNo and FW_ContainsUnicodeChars( cString ) to
check if a string is Unicode. Used from new function LoadStringAuto().
* New: Class TKimi for Moonshot Kimi AI https://www.kimi.com/ It keeps a similar structure to previous
FWH published AI classes: TOpenAI, TOllama, TGemini, TDeepSeek. Please review samples/kimi1.prg
* Enhancement: Class TOutlookMail removes some spaces that sometimes the users get from the GET control.
Thanks to Lailton!
* The FWH print preview was not properly releasing the created metafiles. Now it is ok. Thanks to Enrico!
==============
* Summary: FWH Samples Folder Enhancement Overview
The samples folder has been significantly reorganized with over 1,400 sample files demonstrating
the latest FWH capabilities. Key additions include:
- **AI & Machine Learning** (38 samples): Complete collection of AI integration examples including
transformer models, neural networks, ChatGPT, OpenAI, Gemini, Ollama, DeepSeek, Kimi AI,
and agent-based applications (agentdb.prg, transformer.prg, nn*.prg series)
- **Email Integration** (10+ samples): OAuth-based email connectivity for Outlook and Gmail
with modern authentication methods (outlook/testoutlook.prg, gmail/testgmail.prg)
- **UI Components** (100+ samples): Extensive collection of modern UI controls including
scrolling panels, navigation controls, layout managers, charts, and visual effects
- **Database & Reporting** (50+ samples): Enhanced database connectivity samples for MySQL,
MariaDB, PostgreSQL with advanced reporting capabilities via EasyReport and MyRpt
- **Web Technologies** (20+ samples): WebView2 integration, web scraping, HTML generation,
and modern web-based interfaces
- **Miscellaneous** (690+ samples): Comprehensive collection covering graphics, multimedia,
system integration, networking, printing, and general programming techniques
* Fix: Resolved compilation warnings and errors in `transformer.prg` and `xbrowse.prg`.
- `transformer.prg`: Addressed ambiguous references, missing method declarations (New, Forward, Backward), and duplicate variable declarations.
- `xbrowse.prg`: Fixed ambiguous references and missing method declarations (_InitProperties, _InitData, _InitEvents), and refactored initialization logic.
* Enhancement: Class Transformer code Refactoring and improved.
* Fix: TGet in UTF8 mode (including references to the source code in tget.prg).
Solution: When continuously using the New Phonetic Input Method to input several Chinese characters, pressing [Enter] works
fine the first time, but on the second time when inputting several more Chinese characters and pressing [Enter], the cursor
returns to the position after the first input of Chinese characters, moves right, and then jumps to the position after the
last Chinese character +1.
Solution: Fix the issue where pressing the keyboard [Insert] key causes the cursor to jump to the first position.
Solution: When selecting and cutting with the mouse, the cursor jumps to the first position; it should correctly stay at the
starting position of the selected area.
Solution: If using PICTURE, for example: PICTURE "@R 9999.99.99", selecting and cutting with the mouse causes the data and
format to disappear.
Solution: If using PICTURE, for example: PICTURE "@R 9999.99.99", selecting and pasting with the mouse causes the data and
format to become messed up.
Solution: For strings without PICTURE that contain English and numbers, the length calculation is incorrect.
Solution: Cursor error issues with UTF8 strings for VK_BACK, VK_LEFT, VK_RIGHT.
Solution: When selecting data to the right with VK_DELETE, then pressing [delete] and then pressing the keyboard right arrow
[right], the cursor jumps several spaces.
Solution: Garbled text issues under ANSI when deleting or back-deleting.
July-August 2025
================
* New: Added UPDOWN, IPADDRESS, and HOTKEY control command definitions to fivewin.ch
Three new preprocessor commands are now available for Windows common controls:
- UPDOWN: Support for UpDown (spin) controls with BUDDY clause for edit association,
RANGE for min/max limits, and POS for initial value
Sample usage:
@ 4, 15 UPDOWN oUpDown OF oWnd BUDDY oEdit RANGE 0, 100 POS nValue ON CHANGE UpdateDisplay()
- IPADDRESS: Support for IP Address input controls with VAR clause for variable binding
Sample usage:
@ 4, 10 IPADDRESS oIPAddr VAR cIPAddress OF oWnd SIZE 100, 20 ON CHANGE UpdateDisplay()
- HOTKEY: Support for Hot Key input controls for shortcut key assignment
Sample usage:
@ 4, 10 HOTKEY oHotKey OF oWnd SIZE 120, 20 ON CHANGE UpdateDisplay()
These commands follow established FiveWin patterns and support standard clauses like
SIZE, OF, PIXEL, MESSAGE, WHEN, VALID, and ON CHANGE for event handling.
Please review the sample applications: updown.prg, ipaddr.prg, and hotkey.prg
* New: Added PAGER and SYSLINK control command definitions to fivewin.ch
Two additional preprocessor commands are now available for Windows common controls:
- PAGER: Support for scrollable container controls that can hold child windows with
automatic scroll buttons and flexible navigation
Sample usage:
@ 4, 10 PAGER oPager CHILD oChild OF oWnd SIZE 300, 120 HORIZONTAL AUTOSCROLL ON CHANGE UpdateDisplay()
- SYSLINK: Support for modern hyperlink controls with HTML-like markup (Vista+)
for rich text links with multiple URLs per control
Sample usage:
@ 4, 10 SYSLINK oLink TEXT "Visit <A HREF='https://www.fivetechsoft.com'>FiveTechSoft</A>" OF oWnd SIZE 300, 20 ON CLICK HandleClick()
These commands follow established FiveWin patterns and support standard clauses like
SIZE, OF, PIXEL, MESSAGE, WHEN, ON CHANGE/ON CLICK for event handling. PAGER supports
HORIZONTAL, AUTOSCROLL, DRAGDROP, BORDER, BUTTONSIZE, and BACKCOLOR clauses. SYSLINK
supports TEXT, URL, TRANSPARENT, VISUALSTYLE, and other styling options.
Please review the sample applications: pager.prg and syslink.prg
* Fix: TMultiGet Unicode problem. Thanks to Hakan Önemli
* New: samples\outlook\testoutlook.prg
A new example demonstrating how to use the TOutlookMail and TOAuth classes to connect to Office365 via OAuth for sending
emails. You need to configure the "client_id", "client_secret" and "redirect_uri" with your oAuth2 settings (from Microsoft
settings)
* Fix: Proper Unicode support for Windows API ToolBars. Please review samples\richard.prg
* Fix: Print Preview fix for FWH 64 bits reported in:
https://forums.fivetechsupport.com/viewtopic.php?t=45777
* Enhancement: Class TScrollPanel provide horizontal scrolling capabilities too.
Please review samples\graphscr.prg demo.
* New: function LoadStringW() to load Unicode strings from resources string tables. Example of use:
#include "FiveWin.ch"
function Main()
MsgInfoW( LoadStringW( GetResources(), 30 ) ) // where 30 is the string ID
return nil
* New: function LoadStringAuto( hInstance, nId ) automatically detects if a string to be loaded is
Unicode and if so, it loads it as Unicode.
* New: functions FW_HasControlChars( cString ) --> lYesNo and FW_ContainsUnicodeChars( cString ) to
check if a string is Unicode. Used from new function LoadStringAuto().
* New: Class TKimi for Moonshot Kimi AI https://www.kimi.com/ It keeps a similar structure to previous
FWH published AI classes: TOpenAI, TOllama, TGemini, TDeepSeek. Please review samples/kimi1.prg
* Enhancement: Class TOutlookMail removes some spaces that sometimes the users get from the GET control.
Thanks to Lailton!
* The FWH print preview was not properly releasing the created metafiles. Now it is ok. Thanks to Enrico!