🚀 MiniGUI Extended Edition – Build 26.07 Update 1 Now Available!

28 views
Skip to first unread message

Grigory Filatov

unread,
Jul 22, 2026, 3:26:36 AM (yesterday) Jul 22
to Harbour Minigui
Dear MiniGUI Community,

We're pleased to announce the release of MiniGUI Extended Edition – Build 26.07 Update 1 (2026/07/22).

This maintenance update focuses on reliability and documentation. It restores the correct Win32 handling of mouse wheel events in the BROWSE control while preserving the familiar scrolling behavior, and includes significant improvements to several sample applications through enhanced documentation, robustness, and code clarity.

🔹 Highlights

* BROWSE Control

  * Fixed mouse wheel processing using the proper Win32 `GET_WHEEL_DELTA_WPARAM()` macro while preserving the existing scrolling behavior.

* Sample Improvements

  * Browse Scopes: Enhanced database environment save/restore, improved error handling, and expanded integration documentation.
  * DBF Header Info: Added comprehensive technical notes and significantly improved source documentation.
  * System Metrics: Expanded professional inline documentation while preserving the original code and behavior.

📥 Downloads

STANDARD Build

Compatible with Borland C++ 5.8.2

https://hmgextended.com/files/CONTRIB/hmg-26.07.1-setup.zip

This build is NOT recommended for production use.

---

🔐 PROFESSIONAL Build

Production-ready, stable, and recommended for serious development and deployment.

Downloads:

https://hmgextended.com/files/CONTRIB/hmg-26.07.1-pro.7z

https://hmgextended.org/files/CONTRIB/hmg-26.07.1-pro.7z

The password for the PROFESSIONAL build is shared with MiniGUI donors and supporters.

This update has been thoroughly tested and is recommended for all users of Build 26.07.

---

Our sincere thanks go to everyone who reports issues, contributes improvements, tests new releases, and supports the MiniGUI project.

Special thanks to Eladio Bravo for reporting the BROWSE control issue.

Warm regards,

Grigory Filatov
on behalf of the MiniGUI Team

Marcelo Antonio Lázzaro Carli

unread,
Jul 22, 2026, 8:57:51 AM (23 hours ago) Jul 22
to Grigory Filatov, Harbour Minigui

Thank you

 

 

Marcelo A. L. Carli

Malc Informática — Gestão em Saúde Ocupacional

📍 Marília/SP — Capital Nacional do Alimento ®

🌐 https://malc-informatica.ueniweb.com

📧 marcelo...@gmail.com

📱 Instagram: @malcarli25

--
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/33b65d29-7bf5-44a6-9758-e703f0e8237an%40googlegroups.com.


Não contém vírus.www.avast.com

Grigory Filatov

unread,
3:02 AM (5 hours ago) 3:02 AM
to Harbour Minigui
Hi Friends,

Here's an explanation of the improved mouse wheel scrolling handling introduced in this update..

1. The original code is logically incorrect

The original assumes the wheel delta is only ever either:

* +WHEEL_DELTA (typically +120)
* anything else (treated as downward scrolling)

IF nr == WHEEL_DELTA
   // scroll up
ELSE
   // scroll down
ENDIF

The problem is that GET_WHEEL_DELTA_WPARAM() returns a signed value, not a boolean. According to the Win32 API:

* +120 = one wheel notch forward
* -120 = one wheel notch backward
* +240, -240, etc. = multiple notches
* high-resolution wheels may generate smaller accumulated values depending on how messages are processed

So the original incorrectly treats every value except exactly +120 as a downward scroll.

Examples:

| nr   | Original | Correct       |
| ---- | -------- | ------------- |
| +120 | Up       | Up            |
| -120 | Down     | Down          |
| +240 | Down ❌  | Up            |
| +360 | Down ❌  | Up            |
| +60  | Down ❌  | Up (positive) |
| 0    | Down ❌  | No action     |


---

2. The improved code handles the sign correctly

IF nr > 0
   ...
ELSEIF nr < 0
   ...
ENDIF

This matches the Win32 semantics.

It correctly handles:

* +120
* +240
* +360
* accumulated wheel values
* future hardware
* ignores zero

This is much more robust.

---

3. It also correctly ignores zero

The original:

ELSE

means even

nr == 0

causes a page down.

That's wrong.

The improved version:

ELSEIF nr < 0

does nothing for zero.

That is exactly what should happen.

---

4. Compatibility with modern mice

Modern hardware is no longer limited to discrete ±120 wheel messages.

Examples include:

* precision wheels
* free-spinning wheels (e.g. Logitech HyperScroll)
* touchpads emulating wheel events
* high-resolution HID devices

Microsoft's documentation recommends testing the sign of the delta rather than assuming only ±120 values.

---

Even better implementation

If this routine only performs one page movement regardless of magnitude, then

IF nr > 0
   ...
ELSEIF nr < 0
   ...
ENDIF

is ideal.

---

Should this change be included in MiniGUI core?

Yes.

Reasons:

* It fixes a real logic bug.
* It is fully backward compatible for normal mice (±120 still behaves identically).
* It improves compatibility with modern input devices.
* It prevents incorrect scrolling for larger positive deltas.
* It correctly ignores nr == 0 instead of scrolling down.

It's a correctness fix rather than a behavioral redesign.

---

Verdict

The improved implementation is the better one because it:

* ✔ correctly interprets the sign of the wheel delta
* ✔ handles values larger than ±120
* ✔ ignores zero deltas
* ✔ follows Win32 WM_MOUSEWHEEL semantics
* ✔ is more future-proof while remaining backward compatible

For a framework like MiniGUI, this is exactly the kind of small, low-risk correctness improvement that belongs in the core library.

среда, 22 июля 2026 г. в 09:26:36 UTC+2, Grigory Filatov:

Ross McKenzie

unread,
7:36 AM (20 minutes ago) 7:36 AM
to Grigory Filatov, Harbour Minigui
Agree.

--
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.
Reply all
Reply to author
Forward
0 new messages