🚀 MiniGUI Extended Edition – Build 26.08 Coming Soon!

13 views
Skip to first unread message

Grigory Filatov

unread,
2:19 PM (9 hours ago) 2:19 PM
to Harbour Minigui

Dear MiniGUI Community,

We are pleased to announce the upcoming HMG Extended Edition Build 26.08, scheduled for August 24, 2026.

This release continues our ongoing effort to improve the MiniGUI core through careful refactoring, resource-management fixes, API enhancements, better documentation, and practical new examples.

Build 26.08 introduces an important GDI resource leak fix in gradient drawing, a new TreeBuildFromArray() helper for building hierarchical TREE controls from arbitrary data sources, improved source documentation across numerous core modules, and several new and enhanced samples and utilities.


đź”§ Highlights of This Release

       Gradient Drawing Refactoring
  • Gradient drawing logic refactored: duplicated drawing code has been consolidated into reusable logic.
  • Critical GDI resource leak fixed: LinearGradientBrush() now correctly releases the memory device context when CreateCompatibleDC() succeeds but CreateCompatibleBitmap() fails.
  • Unified rendering: immediate painting and repaint-task rendering now use identical drawing logic.
  • Improved control flow: early-exit validation makes the implementation easier to read and maintain.
  • Improved maintainability: descriptive constants replace magic numeric border values.
  • Standardized code: variable naming and formatting have been made more consistent.
  • Optimized native helpers: redundant boolean conversions were removed while preserving existing behavior.

See the demo in \samples\Advanced\DrawGradient.

🌳 New TreeBuildFromArray() Helper

A new TreeBuildFromArray() helper makes it significantly easier to populate a TREE control from hierarchical data.

  • Builds a complete TREE hierarchy from a simple parent-child array.
  • Supports unlimited nesting depth while preserving the original array order.
  • Accepts any ID type, including character, numeric, GUID, or mixed values.
  • Uses the source array row index as the internal TREE item ID.
  • Supports optional Image and Cargo columns.
  • An optional code block can determine whether an item is a NODE or TREEITEM.

Basic syntax:

TreeBuildFromArray( aData [, nIdCol, nTextCol, nParentCol, nImageCol, nCargoCol, bIsNode ] )

Requested by Yunus Dagia.

See demo2.prg in \samples\Basic\Tree_3.

📚 Improved Core Documentation

Extensive documentation improvements have been made across the HMG Extended core.

Structured comments using a consistent Purpose / Parameters / Return / Side Effects format were added or improved for:

  • Create Windows handling
  • Global Events
  • Rating control
  • RichEditBox control
  • StatusBar control
  • Tab control
  • Timer control
  • ToolBar control
  • TreeView control
  • MRU menu support
  • MessageBox handling
  • HbPrinter library
  • MiniPrint library
  • hbvpdf PDF generation library

Additional inline explanations document important implementation details and make the source easier to understand, maintain, and extend.

All documentation improvements preserve existing functionality.

🔎 TSBrowse 9.0 Update

The FiveWin TSBrowse 9.0 adaptation for HMG has been updated.

  • Improved the FilterFTS() method.
  • Added support for additional search symbols.

Suggested and contributed by Sergej Kiselev.

See the demo in \samples\Advanced\Tsb_Filter.


🆕 New Samples

Tree Build From Array

A new sample demonstrates how to dynamically populate a TREE control from a multidimensional array loaded from a DBF table.

See demo3.prg in \samples\Basic\Tree_3.

Tree Build From Directory

A new sample demonstrates the generic nature of TreeBuildFromArray() by building a TREE directly from the Windows file system.

Features include:

  • Recursive folder scanning.
  • Conversion of directory information into the standard { ID, Caption, ParentID, Cargo, IsNode } hierarchy.
  • Browse and Refresh operations.
  • Expand All / Collapse All.
  • Selection details including Name, Type, and Full Path.
  • Double-click handling to expand folders or open files.

The example demonstrates that TreeBuildFromArray() can be reused with many different data sources—not only DBF tables, but also file systems, SQL queries, XML, JSON, and other hierarchical data.

See \samples\Basic\TreeBuildFromDirectory.


✨ Enhanced Samples

GraphPlus Library Demo

The GraphPlus demo has been extensively documented with professional comments throughout the source code while preserving its original logic, structure, and formatting.

See \samples\Advanced\GraphPlus.

CAB Creation, Info & Extraction

Detailed source documentation has been added to the CAB utility sample.

See \samples\Advanced\HbCAB_2.

EZ Lines 1.5

The EZ Lines sample application has been updated to version 1.5.

Improvements include:

  • Clearer source organization and documentation.
  • Documentation of board encoding, states, and algorithms.
  • Conversion of shared state to descriptive STATIC variables.
  • Improved starting-ball placement to guarantee three distinct empty cells.
  • Standardized routine headers.
  • Modern MiniGUI coding style.
  • Improved readability as a teaching example for path-finding, animation, INI/DBF persistence, and MiniGUI event handling.

Original game logic and UI behavior remain unchanged.

See \samples\Applications\EZ_Lines [PRO VERSION].


🤖 New PRO Utility: Gemini API Client

Build 26.08 introduces a new Gemini API Client console utility for Harbour.

The utility provides:

  • Interaction with Google Gemini models from Harbour.
  • Text prompts.
  • Multiple source files.
  • Streaming responses.
  • Optional file uploads.
  • Command-line configuration of model, temperature, API key, input, and output files.
  • Reusable TGemini class.
  • README documentation.
  • Sample prompt and demonstration files.

The utility is designed both as a practical command-line tool and as a reusable foundation for integrating Gemini models into Harbour applications.

Located in \UTILS\Gemini_Client [PRO VERSION].


🛠️ Updated PRO Utility: Harbour Commander

The Harbour Commander utility by Rafal Jopek has received comprehensive professional documentation comments to improve source readability and maintainability.

See \UTILS\Harbour_Commander [PRO VERSION].


đź“– More Maintainable MiniGUI

Build 26.08 continues a broader modernization effort across HMG Extended:

Cleaner C code → Better resource management → More reusable APIs → Better documentation → Better examples

The release combines low-level core improvements with practical high-level examples, making the framework easier to maintain for experienced developers and easier to learn for newcomers.


đź’¬ A big thank-you to all MiniGUI contributors, testers, users, and supporters!

Special thanks to Yunus Dagia for requesting the TreeBuildFromArray() functionality and to Sergej Kiselev for his contribution to the TSBrowse 9.0 adaptation.

Your feedback, contributions, and continued support help HMG Extended evolve into a more robust, maintainable, and capable Harbour GUI framework.

Warm regards,

Grigory Filatov
on behalf of the MiniGUI Team

Valteçom José Martins

unread,
3:10 PM (9 hours ago) 3:10 PM
to Grigory Filatov, Harbour Minigui
Thank you Grigory Filatov,
Looking forward to further updates.

Best regards,
Valteçom
Uberaba MG Brazil

--
Visit our website on https://www.hmgextended.com/ or https://www.hmgextended.org/
---
You received this message because you are subscribed to the Google Groups "Harbour Minigui" group.
To unsubscribe from this group and stop receiving emails from it, send an email to minigui-foru...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/minigui-forum/80f76ba5-e1d5-492f-bc5e-6d2cf1e0d031n%40googlegroups.com.


--
Uberaba MG Brasil
Fone: 
(34) 99659-1423 (Whatsapp)

Ao encaminhar esta mensagem, por favor:
1. Apague o meu e-mail e o meu nome.
2. Apague também os endereços dos amigos antes de reenviar.
3. Encaminhe como cópia oculta (Cco ou Bcc) aos SEUS destinatários.
Agindo sempre assim dificultaremos a disseminação de vírus, spans e banners.
Reply all
Reply to author
Forward
0 new messages