Re: HMG Graph based on Bos Taurus
Posted: Wed Dec 07, 2016 2:17 pm
Thank you for the tip Grigory Filatov. Now I will check that up!
Exclusive forum for HMG, a Free / Open Source xBase WIN32/64 Bits / GUI Development System
http://www.hmgforum.com/
Hi Rathi,Rathinagiri wrote:Yep! With Grigory's fix, the problem is gone!
Thank you Grigory.
Thanks Grigory !gfilatov wrote:Hi Marek,mol wrote:What I need to change? Sources of Bos Taurus?
Yes, it is.
For example, there is the missed cleaning of hBrush variable in the C-function BT_DRAW_HDC_POLY
This function should be fixed as below
Please take a look for the needed additional stringsCode: Select all
HB_FUNC( BT_DRAW_HDC_POLY ) { HDC hDC; HPEN hPen; HBRUSH hBrush; HPEN OldPen; HBRUSH OldBrush; INT nCountX, nCountY; COLORREF ColorLine, ColorFill; INT nWidthLine, nLen; INT nPOLY, i; #ifndef __MINGW_H POINT aPoint [2048]; #endif hDC = (HDC) HB_PARNL (1); nCountX = (INT) hb_parinfa(2,0); nCountY = (INT) hb_parinfa(3,0); ColorLine = (COLORREF) hb_parnl (4); nWidthLine = (INT) hb_parni (5); ColorFill = (COLORREF) hb_parnl (6); nPOLY = (INT) hb_parni (7); nLen = min( nCountX, nCountY ); if ( nLen > 0 ) { #ifdef __MINGW_H POINT aPoint[ nLen ]; #endif for ( i=0; i < nLen; i++ ) { aPoint[ i ].x = hb_parvni ( 2, i + 1 ); aPoint[ i ].y = hb_parvni ( 3, i + 1 ); } SaveDC(hDC); hPen = CreatePen(PS_SOLID, nWidthLine, ColorLine); OldPen = ( HPEN ) SelectObject(hDC, hPen); hBrush = CreateSolidBrush( ColorFill ); OldBrush = ( HBRUSH ) SelectObject(hDC, hBrush); switch( nPOLY ) { case BT_DRAW_POLYLINE: Polyline( hDC, aPoint, nLen ); break; case BT_DRAW_POLYGON: Polygon( hDC, aPoint, nLen ); break; case BT_DRAW_POLYBEZIER: PolyBezier( hDC, aPoint, nLen ); break; } SelectObject( hDC, OldBrush ); DeleteObject(hBrush); SelectObject( hDC, OldPen ); DeleteObject(hPen); RestoreDC(hDC, -1); hb_retl( TRUE ); } else hb_retl( FALSE ); }
There are a similar bugs with the missed SelectObject calling in the others functions also.SelectObject( hDC, OldBrush );
...
SelectObject( hDC, OldPen );
Hope that helps