Page 1 of 1

circles on xharbour( fw)

PostPosted: Mon Mar 27, 2006 12:04 pm
by Silvio
How create tree concentric circles ?

Regards

PostPosted: Mon Mar 27, 2006 12:20 pm
by Antonio Linares
Silvio,

Code: Select all  Expand view
BOOL Ellipse(
    HDC hdc,   // handle to device context
    int nLeftRect,   // x-coord. of bounding rectangle's upper-left corner
    int nTopRect,   // y-coord. of bounding rectangle's upper-left corner 
    int nRightRect,   // x-coord. of bounding rectangle's lower-right corner 
    int nBottomRect    // y-coord. bounding rectangle's f lower-right corner 
   );

PostPosted: Mon Mar 27, 2006 12:24 pm
by Silvio
if I have
Code: Select all  Expand view
Rectangle( ::hDC, nX, nY, nX + ::nHeight, ( nY += ::nPinWidth ) )


with ellipse
Code: Select all  Expand view
ellipse( ::hDC, nX, nY, nX + ::nHeight, ( nY += ::nPinWidth ) )


I try it but it not draw circle concentric

Re: circles on xharbour( fw)

PostPosted: Mon Mar 27, 2006 12:50 pm
by Enrico Maria Giordano
This is a working sample:

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL nX := 100
    LOCAL nY := 100

    LOCAL nMinRad := 20
    LOCAL nMaxRad := 100

    LOCAL nStep := 10

    DEFINE DIALOG oDlg;
           SIZE 200, 200

    ACTIVATE DIALOG oDlg;
             ON PAINT CIRCLES( oDlg, hDC, nX, nY, nMinRad, nMaxRad, nStep );
             CENTER

    RETURN NIL


#define BRUSH_NULL 5


STATIC FUNCTION CIRCLES( oDlg, hDC, nX, nY, nMinRad, nMaxRad, nStep )

    LOCAL hOldBrush := SELECTOBJECT( hDC, GETSTOCKOBJECT( BRUSH_NULL ) )

    LOCAL i

    FOR i = nMinRad TO nMaxRad STEP nStep
        oDlg:Circle( nX - i, nY - i, i * 2 )
    NEXT

    SELECTOBJECT( hDC, hOldBrush )

    RETURN NIL


EMG