Download HMG

Download HMG Latest Version

The latest version of HMG is 3.4.3.

Download the new version from here (64 MB).

For 64 Bit developers, you have to download and install Harbour64 and MingW64 from here (15 MB) and here (71 MB)respecitvely.

Change log:

Code: Select all

-HMG 3.4.3 2016/05/08
   - Updated MinGW C compiler (32 and 64-bit) to version 5.3.0 (release december 2015)
   - Updated Harbour 64-bit compiler to version nightly 2016-04-20
   - Updated Harbour compiler to version nightly 2016-05-07
   - New HMG_IsWin64(), returns TRUE if OS is of 64-bit (contrib by BPD2000)
   - New HFCL functions for RichEditBox (contrib by Kevin Carmody):
      - RichEditBox_LoadFileEx, RichEditBox_SaveFileEx
      - RichEditBox_HasNonAsciiChars, RichEditBox_HasNonAnsiChars
      - GetRichEditFileType, HMG_UTF16ByteSwap
      - see \SAMPLES\HFCL\WordScribe
   - New Numeric TextBox support comma ( , ) as decimal separator (contrib by Marek)
   - New Draw GRAPH in Bitmap (contrib by S. Rathinagiri):
      - see documentation and demo \SAMPLES\Controls\Graph\GRAPH_Bitmap
      - Note: It is highly recommended to use Graph Bitmap instead of Graph Command because the painting is much more efficient and does not produce flicker
   - New internal C function: HMG_Trace()
   - New function GetBinaryType ( cApplicationName ) --> nBinaryType (constants are defined in
      - SCS_32BIT_BINARY   // A 32-bit Windows-based application
      - SCS_64BIT_BINARY   // A 64-bit Windows-based application.
      - SCS_DOS_BINARY     // An MS-DOS – based application
      - SCS_OS216_BINARY   // A 16-bit OS/2-based application
      - SCS_PIF_BINARY     // A PIF file that executes an MS-DOS – based application
      - SCS_POSIX_BINARY   // A POSIX – based application
      - SCS_WOW_BINARY     // A 16-bit Windows-based application
   - Bos Taurus: new version 1.0.6
      - New functions(see doc):
         - BT_DrawTextEx (hDC, Row, Col, Width, Height, cText, cFontName, nFontSize, aFontColor, aBackColor, nTypeText, nAlingText, nOrientation)
         - BT_DrawTextSize (hDC, cText, cFontName, nFontSize, nTypeText) --> { nTextWidth, nTextHeight, A+B+C of first character, A, B, C }
         - BT_DrawPolygon (hDC, aPointY, aPointX, aColorRGBLine, nWidthLine)
         - BT_DrawPolyBezier (hDC, aPointY, aPointX, aColorRGBLine, nWidthLine)
         - BT_DrawArc (hDC, Row1, Col1, Row2, Col2, RowStartArc, ColStartArc, RowEndArc, ColEndArc, aColorRGBLine, nWidthLine)
         - BT_DrawChord (hDC, Row1, Col1, Row2, Col2, RowStartArc, ColStartArc, RowEndArc, ColEndArc, aColorRGBLine, nWidthLine, aColorRGBFill)
         - BT_DrawPie (hDC, Row1, Col1, Row2, Col2, RowStartArc, ColStartArc, RowEndArc, ColEndArc, aColorRGBLine, nWidthLine, aColorRGBFill)
   - New: now in Label control is possible to assign any data type or a list of data, e.g.
      - @ ... LABEL ... VALUE xDataType
      - Form.Label.Value := xDataType
      - Form.Label.Value := { xDataType, xDataType, ... }
   - New property HBITMAP in IMAGE control (set/get hBitmap into Image control)
   - New in GRID control:
      - now when loads a Grid control and column control is NIL converts automatically any data type in text, this avoids that column appears empty.
      - On InplaceEditEvent <OnInplaceEditEventProcedure>
      - Properties Available For OnInplaceEditEvent Procedure:
            - This.IsInplaceEditEventInit: Return .T. or .F.
            - This.IsInplaceEditEventRun: Return .T. or .F.
            - This.IsInplaceEditEventFinish: Return .T. or .F.
            - This.InplaceEditGridName: eg. “Grid_1”
            - This.InplaceEditParentName: eg. “Form_1”
            - This.InplaceEditControlHandle: Handle of InplaceEdit ColumnControl, eg. Handle of TEXTBOX, DATEPICKER, TIMEPICKER, COMBOBOX, SPINNER, CHECKBOX, etc.
            - This.InplaceEditControlIndex: Return nControlIndex
      - Now ON CLICK and ON KEY event of Gid control is available too in InplaceEdit state,
        for check if the event is fired in the Grid control or inside of InplaceEdit control you use the property This.IsInplaceEditEventRun       
      - see SAMPLES\Controls\Grid\GridInplaceEditEvent
- Documented in --> Advanced --> Memory, Processes and Threads
   - New RELEASE MEMORY, release unused memory (leak memory), test for example:
   - New HMG_GetObjectCount( [ nProcessId ] )
      - returns an array of 3 items with information about the number of system objects used for a process { nGDIObjects, nUserObjects, nKernelObjects }
   - Documented many undocumented functions
   - New: CREATE EVENT CODEBLOCK bCodeBlock [ HWND hWnd ] [ MSG nMsg ] [ STOREINDEX nIndex ]
   - New: HMG_PressKey( nVK1, nVK2, ... ) --> return array { nVK1, nVK2, ... }
         - Simulates the pressure of a key or a combination of keys (where nVK is a virtual key code)
   - New in HMG Debugger (see doc):
      - New hotkeys
      - Now you can switch between the ToolBar and the Main Menu at your convenience
      - Fixed minor bugs
      - added in dbgGUI.prg DoEvents() into large FOR-NEXT cycles
      - added a waiting message while the program loads
   - For a defensive programming (minimization of input errors)
      - New Class HMG_TString:
         - This class selects automatically the correct ANSI or Unicode string function depending of current code page,
           the use of this class create a more portable your code.
         - for default HMG a create instance of this class, you call with a pseudovariable oString (e.g. oString.Upper( cText ) )
         - create a new instance of class -> oStr := HMG_TStringNew(), use e.g. oStr.Upper( cText )
         - see documentation( DOC --> CLASSES --> HMG_TString )
   - New: CHECK TYPE [ SOFT ] <var1> AS <type1> [ , <var2> AS <type2> [, <varN> AS <typeN> ] ]
      <var> = var name
      - see documentation( DOC --> Advanced --> CHECK TYPE )
   - New IDE ver 1.1
      - now the IDE not convert to lowercase the name of the PRG files
      - eliminated the maximum limit of 10000 milliseconds in the Timer control imposed for the IDE
      - Zero value in MAXLENGTH property of the controls RichEdit, TextBox and EditBox is equal a NIL value
      - now double click on the Run or Debug buttons not abort the IDE
   - Fixed bug in SetGridQueryData() in Win XP (reported by Eduardo Luis)
   - Fixed bug in TrackPopupMenu() (reported by Esgici and Mustafa)
   - Fixed bug in Transparent Label (reported by Emzampi)
   - Fixed bug in Transparent property of BT_DrawText() function (reported by Andres Gonzales)
   - Fixed bug in DynamicBackColor and DynamicForeColor of the Grid control when used with database (reported by Luis Vasquez)
   - Fixed bug in Set/Get Image in column one of Grid control (introduced in HMG.3.4.1) (reported by Zoltan Miszler)
   - Fixed bug in OnCheckBoxClicked of Grid control (reported by Rathinagiri)
   - Fixed bug in Picture property of ToolBar Button (reported by Pablo César)
   - Fixed bug in updating the Value property when an item is deleted in the Grid control (reported by TopsMarc)
   - Fixed bug in updating record pointer in database in the Grid control (reported by TopsMarc)
   - Fixed bug in Hotkey Alt+S and Alt+U of the Grid control (reported by PiotrM)
   - Fixed bug in ToolTip CustomDraw (reported by Eduardo Luis and Kevin Carmody)