Saludos
Tengo Este codigo , lo compile con Harbour 3.2 y bcc68, al ejecutar no hace nada, anexo el log, donde muestra los errores
El sistema Operativo que tengo es Windows 8.1 de 64 bits
Este es el codigo que compile
Este es el codigo de Error -- Este es el log
Asi lo Compilo
Tengo Este codigo , lo compile con Harbour 3.2 y bcc68, al ejecutar no hace nada, anexo el log, donde muestra los errores
El sistema Operativo que tengo es Windows 8.1 de 64 bits
Este es el codigo que compile
#include 'inkey.ch'
#include 'common.ch'
#include 'wvtwin.ch'
//-------------------------------------------------------------------//
//
// WvtSetObjects() array structure
//
#define WVT_OBJ_TYPE 1
#define WVT_OBJ_ID 2
#define WVT_OBJ_ROW 3
#define WVT_OBJ_COL 4
#define WVT_OBJ_ROWTO 5
#define WVT_OBJ_COLTO 6
#define WVT_OBJ_ONDISP 7
#define WVT_OBJ_ONMOUSEOVER 8
#define WVT_OBJ_ONBUTTONDOWN 9
#define WVT_OBJ_ONBUTTONUP 10
#define WVT_OBJ_TOOLTIP 11
#define WVT_OBJ_STATE 12
#define WVT_OBJ_DUMMY 13
#define WVT_OBJ_VRBLS 13
// WVT_OBJ_TYPE Constants
//
#define OBJ_TYPE_BUTTON 1
// WVT_OBJ_STATE
//
#define OBJ_STATE_HIDE 0
#define OBJ_STATE_DISP 1
#define OBJ_STATE_MOUSEOVER 2
#define OBJ_STATE_BUTTONDOWN 3
#define OBJ_STATE_BUTTONUP 4
//-------------------------------------------------------------------//
#define IMAGE_VOUCH 'vouch1.bmp'
#define IMAGE_BROWSE 'v_browse.ico'
#define IMAGE_VR 'vr_1.ico'
#define IMAGE_NOTES 'v_notes.ico'
#define IMAGE_TOOLS 'v_tools.ico'
#define IMAGE_HELP 'v_notes.ico'
//-------------------------------------------------------------------//
//
// Candidate for inkey.ch
//
#define K_SBLINEUP 1051
#define K_SBLINEDOWN 1052
#define K_SBPAGEUP 1053
#define K_SBPAGEDOWN 1054
#define K_SBLINELEFT 1055
#define K_SBLINERIGHT 1056
#define K_SBPAGELEFT 1057
#define K_SBPAGERIGHT 1058
#define K_SBTHUMBTRACKVERT 1059
#define K_SBTHUMBTRACKHORZ 1060
//-------------------------------------------------------------------//
#define CRLF chr( 13 )+chr( 10 )
//-------------------------------------------------------------------//
static wvtScreen := {}
static pic_:= { , , , , , , , , , , , , , , , , , , , }
static keys_:= { , , , , , , , , , , , , , , , , , , , }
//-------------------------------------------------------------------//
//PROCEDURE Main()
LOCAL aLastPaint, clr, scr, bWhen, bValid
LOCAL dDate := ctod( '' )
LOCAL cName := Pad( 'Pritpal Bedi', 35 )
LOCAL cAdd1 := Pad( '60, New Professor Colony', 35 )
LOCAL cAdd2 := Pad( 'Ludhiana, INDIA', 35 )
LOCAL cAdd3 := Pad( 'http://www.vouchcac.com', 35 )
LOCAL nSlry := 20000
LOCAL aBlocks := {}
LOCAL nColGet := 8
LOCAL GetList := {}
LOCAL nTop := 4
LOCAL nLft := 4
LOCAL nBtm := 20
LOCAL nRgt := 75
LOCAL nMaxRows:= MaxRow()
LOCAL nBtnRow := nMaxRows - 1
LOCAL cLabel := 'xHarbour simulated GUI.'
LOCAL aObjects:= WvtSetObjects( {} )
LOCAL aObj := {}
LOCAL hPopup := Wvt_SetPopupMenu()
LOCAL oMenu := CreateMainMenu()
SET DATE BRITISH
WvtSetKeys( .t. )
Popups( 1 )
Wvt_SetFont( 'Courier New', 18, 0, 0 )
Wvt_SetMouseMove( .t. )
// Force mouse pointer right below the xHarbour label
//
Wvt_SetMousePos( 2,40 )
aAdd( aBlocks, {|| Wvt_SetIcon( 'vr_1.ico' ) } )
aAdd( aBlocks, {|| Wvt_SetTitle( 'Vouch' ) } )
aAdd( aBlocks, {|| Wvt_DrawLabel( 1,40, cLabel,6,, rgb(255,255,255), rgb(198,198,198), 'Arial', 26, , , , , .t., .t. ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxRaised( nTop, nLft, nBtm, nRgt ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxRecessed( 7, 61, 13, 70 ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxGroup( 15, 59, 18, 72 ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxGroup( 5, 6, 19, 44 ) } )
aAdd( aBlocks, {|| Wvt_DrawImage( 8,62,12,69, IMAGE_VOUCH ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxRecessed( 7, 48, 13, 55 ) } )
aAdd( aBlocks, {|| Wvt_DrawLine( maxrow()-2,0,maxrow()-2,maxcol(),WVT_LINE_HORZ,WVT_LINE_RECESSED,WVT_LINE_BOTTOM ) } )
aAdd( aBlocks, {|| Wvt_DrawLine( maxrow()-1, 4,maxrow(), 4,WVT_LINE_VERT,WVT_LINE_RECESSED,WVT_LINE_CENTER ) } )
aAdd( aBlocks, {|| Wvt_DrawLine( maxrow()-1,41,maxrow(),41,WVT_LINE_VERT,WVT_LINE_RECESSED,WVT_LINE_CENTER ) } )
aAdd( aBlocks, {|| aEval( GetList, {|oGet| Wvt_DrawBoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } ) } )
#define btnFDisp WVT_BTN_FORMAT_FLAT
#define btnFMOver WVT_BTN_FORMAT_RAISED
#define btnFBDown WVT_BTN_FORMAT_RECESSED
#define btnFBUp WVT_BTN_FORMAT_FLAT
WvtSetObjects( { OBJ_TYPE_BUTTON, 1, nBtnRow, 6,nBtnRow+1, 9, ;
{|| Wvt_DrawButton( nBtnRow, 6,nBtnRow+1, 9, ,IMAGE_VOUCH,btnFDisp ) },;
{|| Wvt_DrawButton( nBtnRow, 6,nBtnRow+1, 9, ,IMAGE_VOUCH,btnFMOver ) },;
{|| Wvt_DrawButton( nBtnRow, 6,nBtnRow+1, 9, ,IMAGE_VOUCH,btnFBDown ) },;
{|| Wvt_DrawButton( nBtnRow, 6,nBtnRow+1, 9, ,IMAGE_VOUCH,btnFBUp ) ,;
eval( SetKey( K_F2 ) ) } ;
} )
WvtSetObjects( { OBJ_TYPE_BUTTON, 2, nBtnRow,11,nBtnRow+1,14, ;
{|| Wvt_DrawButton( nBtnRow,11,nBtnRow+1,14, ,IMAGE_BROWSE, btnFDisp ) },;
{|| Wvt_DrawButton( nBtnRow,11,nBtnRow+1,14, ,IMAGE_BROWSE, btnFMOver ) },;
{|| Wvt_DrawButton( nBtnRow,11,nBtnRow+1,14, ,IMAGE_BROWSE, btnFBDown ) },;
{|| Wvt_DrawButton( nBtnRow,11,nBtnRow+1,14, ,IMAGE_BROWSE, btnFBUp ) ,;
eval( SetKey( K_F5 ) ) } ;
} )
WvtSetObjects( { OBJ_TYPE_BUTTON, 3, nBtnRow,16,nBtnRow+1,19, ;
{|| Wvt_DrawButton( nBtnRow,16,nBtnRow+1,19,'Expand',IMAGE_NOTES,btnFDisp ) },;
{|| Wvt_DrawButton( nBtnRow,16,nBtnRow+1,19,'Expand',IMAGE_NOTES,btnFMOver ) },;
{|| Wvt_DrawButton( nBtnRow,16,nBtnRow+1,19,'Expand',IMAGE_NOTES,btnFBDown ) },;
{|| Wvt_DrawButton( nBtnRow,16,nBtnRow+1,19,'Expand',IMAGE_NOTES,btnFBUp ) ,;
eval( SetKey( K_F3 ) ) } ;
} )
WvtSetObjects( { OBJ_TYPE_BUTTON, 4, nBtnRow,21,nBtnRow+1,24, ;
{|| Wvt_DrawButton( nBtnRow,21,nBtnRow+1,24,'Shrink', , btnFDisp , rgb( 100,22,241 ), rgb( 0,100,0 ) ) },;
{|| Wvt_DrawButton( nBtnRow,21,nBtnRow+1,24,'Shrink', , btnFMOver, rgb( 100,22,241 ), rgb( 0,100,0 ) ) },;
{|| Wvt_DrawButton( nBtnRow,21,nBtnRow+1,24,'Shrink', , btnFBDown, rgb( 100,22,241 ), rgb( 0,100,0 ) ) },;
{|| Wvt_DrawButton( nBtnRow,21,nBtnRow+1,24,'Shrink', , btnFBUp , rgb( 100,22,241 ), rgb( 0,100,0 ) ) ,;
eval( SetKey( K_F4 ) ) } ;
} )
WvtSetObjects( { OBJ_TYPE_BUTTON, 5, nBtnRow,26,nBtnRow+1,29, ;
{|| Wvt_DrawButton( nBtnRow,26,nBtnRow+1,29,'Minimize',IMAGE_TOOLS, btnFDisp ) },;
{|| Wvt_DrawButton( nBtnRow,26,nBtnRow+1,29,'Minimize',IMAGE_TOOLS, btnFMOver ) },;
{|| Wvt_DrawButton( nBtnRow,26,nBtnRow+1,29,'Minimize',IMAGE_TOOLS, btnFBDown ) },;
{|| Wvt_DrawButton( nBtnRow,26,nBtnRow+1,29,'Minimize',IMAGE_TOOLS, btnFBUp ) ,;
eval( SetKey( K_F6 ) ) },;
} )
WvtSetObjects( { OBJ_TYPE_BUTTON, 6, nBtnRow,31,nBtnRow+1,34, ;
{|| Wvt_DrawButton( nBtnRow,31,nBtnRow+1,34,'Partial',IMAGE_HELP, btnFDisp ) },;
{|| Wvt_DrawButton( nBtnRow,31,nBtnRow+1,34,'Partial',IMAGE_HELP, btnFMOver ) },;
{|| Wvt_DrawButton( nBtnRow,31,nBtnRow+1,34,'Partial',IMAGE_HELP, btnFBDown ) },;
{|| Wvt_DrawButton( nBtnRow,31,nBtnRow+1,34,'Partial',IMAGE_HELP, btnFBUp ) ,;
eval( SetKey( K_F7 ) ) },;
} )
WvtSetObjects( { OBJ_TYPE_BUTTON, 7, nBtnRow,36,nBtnRow+1,39, ;
{|| Wvt_DrawButton( nBtnRow,36,nBtnRow+1,39,'Lines',IMAGE_VR, btnFDisp , rgb( 100,22,241 ), rgb( 0,100,0 ) ) },;
{|| Wvt_DrawButton( nBtnRow,36,nBtnRow+1,39,'Lines',IMAGE_VR, btnFMOver, rgb( 100,22,241 ), rgb( 0,100,0 ) ) },;
{|| Wvt_DrawButton( nBtnRow,36,nBtnRow+1,39,'Lines',IMAGE_VR, btnFBDown, rgb( 100,22,241 ), rgb( 0,100,0 ) ) },;
{|| Wvt_DrawButton( nBtnRow,36,nBtnRow+1,39,'Lines',IMAGE_VR, btnFBUp , rgb( 100,22,241 ), rgb( 0,100,0 ) ) ,;
eval( SetKey( K_F8 ) ) } ;
} )
aAdd( aBlocks, {|| Wvt_Mouse( -1000001 ) } )
aLastPaint := WvtSetBlocks( aBlocks )
scr := SaveScreen( 0,0,maxrow(),maxcol() )
clr := SetColor( 'N/W' )
CLS
SetColor( 'N/W,N/GR*,,,N/W*' )
Wvt_SetMenu( oMenu:hMenu )
Wvt_DrawMenuBar()
SetKey( Wvt_SetMenuKeyEvent(), { || ActivateMenu( oMenu ) } )
@ 6, nColGet SAY '< Date >'
@ 9, nColGet SAY '<' + PadC( 'Name', 33 ) + '>'
@ 12, nColGet SAY '<' + PadC( 'Address', 33 ) + '>'
@ 16, 61 SAY '< Salary >'
dDate := ctod( '04/01/04' )
@ 7, nColGet GET dDate WHEN DispStatusMsg( 'Date must be Valid' );
VALID ClearStatusMsg()
@ 10, nColGet GET cName WHEN DispStatusMsg( 'Must be one of the list!' );
VALID ( VouChoice() < 7 .and. ClearStatusMsg() )
@ 13, nColGet GET cAdd1
@ 15, nColGet GET cAdd2
@ 17, nColGet GET cAdd3
@ 17, 61 GET nSlry PICTURE '@Z 9999999.99'
READ
// Restore Environment
//
WvtSetBlocks( aLastPaint )
WvtSetObjects( aObjects )
SetColor( clr )
RestScreen( 0,0,maxrow(),maxcol(), scr )
WvtSetKeys( .f. )
Wvt_SetPopupMenu( hPopup )
RETURN
//-------------------------------------------------------------------//
PROCEDURE WvtNextGets()
LOCAL aLastPaint, clr
LOCAL dDate := ctod( '' )
LOCAL cName := Space( 35 )
LOCAL cAdd1 := Space( 35 )
LOCAL cAdd2 := Space( 35 )
LOCAL cAdd3 := Space( 35 )
LOCAL nSlry := 0
LOCAL aBlocks := {}
LOCAL nColGet := 8
LOCAL GetList := {}
LOCAL nTop := 4
LOCAL nLft := 4
LOCAL nBtm := 20
LOCAL nRgt := 75
LOCAL kf2 := SetKey( K_F2, {|| WvtGets() } )
LOCAL kf3 := SetKey( K_F3, {|| WvtWindowExpand( 1 ) } )
LOCAL kf4 := SetKey( K_F4, {|| WvtWindowExpand( -1 ) } )
LOCAL cLabel := 'VOUCH, that GROWS with you'
LOCAL aPalette := Wvt_GetPalette()
LOCAL aNewPalette:= aclone( aPalette )
LOCAL aObjects := WvtSetObjects( {} )
LOCAL nRow := Row()
LOCAL nCol := Col()
LOCAL scr := SaveScreen( 0,0,maxrow(),maxcol() )
LOCAL wvtScr := Wvt_SaveScreen( 0,0,maxrow(),maxcol() )
// Change the values of pallatte arbitrarily though yu can fine tune
// these values with realistic values.
//
aNewPalette[ 8 ] := aNewPalette[ 8 ] + 100000
Wvt_SetPalette( aNewPalette )
aAdd( aBlocks, {|| Wvt_SetTitle( 'Wvt Gets 2nd Window with Different Palette' ) } )
aAdd( aBlocks, {|| Wvt_DrawLine( maxrow()-1,0,maxrow()-1,maxcol() ) })
aAdd( aBlocks, {|| Wvt_SetBrush( 0, rgb( 32,255,100 ) ) } )
aAdd( aBlocks, {|| Wvt_DrawEllipse( 6,50,10,58 ) } )
aAdd( aBlocks, {|| Wvt_SetBrush( 2, rgb( 255,255,100 ),1 ) } )
aAdd( aBlocks, {|| Wvt_DrawRectangle( 11, 50, 13, 58 ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxGroupRaised( 5, 6, 19, 72 ) } )
aAdd( aBlocks, {|| aEval( GetList, {|oGet| Wvt_DrawBoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 21, 6,22, 9,'New' ,'vouch1.bmp' ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 21,11,22,14,'Browse','vouch1.bmp', 1, rgb( 255,255,255 ) ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 21,16,22,19, ,'vouch1.bmp' ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 21,21,22,24,'Data',, 0, rgb( 100,22,241 ), rgb( 198,198,198 ) ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 21,26,22,29,'Flat',IMAGE_VR,2 ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 21,31,22,34,'Outline',IMAGE_VR,3 ) } )
aAdd( aBlocks, {|| Wvt_DrawButton( 22,36,22,41,'Data',, 0, rgb( 100,22,241 ), rgb( 198,198,198 ) ) } )
aLastPaint := WvtSetBlocks( aBlocks )
clr := SetColor( 'N/W,N/GR*,,,N/W*' )
CLS
@ MaxRow(), 0 SAY PadC( 'xHarbour + WVT Console GUI Screen',80 ) COLOR 'R+/W'
@ 6, nColGet SAY '< Date >'
@ 9, nColGet SAY '<' + PadC( 'Name', 33 ) + '>'
@ 12, nColGet SAY '<' + PadC( 'Address', 33) + '>'
@ 16, 61 SAY '< Salary >'
@ 7, nColGet GET dDate
@ 10, nColGet GET cName
@ 13, nColGet GET cAdd1
@ 15, nColGet GET cAdd2
@ 17, nColGet GET cAdd3
@ 17, 61 GET nSlry PICTURE '@Z 9999999.99'
READ
// Restore Environment
//
Wvt_SetPalette( aPalette )
WvtSetObjects( aObjects )
WvtSetBlocks( aLastPaint )
SetColor( clr )
RestScreen( 0,0,maxrow(),maxcol(), scr )
Wvt_RestScreen( wvtScr )
SetPos( nRow, nCol )
RETURN
//-------------------------------------------------------------------//
FUNCTION WvtSetKeys( lSet )
if lSet
keys_[ 2 ] := SetKey( K_F2, {|| WvtNextGets() } )
keys_[ 3 ] := SetKey( K_F3, {|| WvtWindowExpand( 1 ) } )
keys_[ 4 ] := SetKey( K_F4, {|| WvtWindowExpand( -1 ) } )
keys_[ 5 ] := SetKey( K_F5, {|| WvtMyBrowse() } )
keys_[ 6 ] := SetKey( K_F6, {|| Wvt_Minimize() } )
keys_[ 7 ] := SetKey( K_F7, {|| WvtPartialScreen() } )
keys_[ 8 ] := SetKey( K_F8, {|| WvtLines() } )
keys_[ 9 ] := SetKey( K_F9, {|| Wvt_ChooseFont() } )
keys_[ 10] := SetKey( K_F10,{|| Wvt_ChooseColor() } )
else
SetKey( K_F2, keys_[ 2 ] )
SetKey( K_F3, keys_[ 3 ] )
SetKey( K_F4, keys_[ 4 ] )
SetKey( K_F5, keys_[ 5 ] )
SetKey( K_F6, keys_[ 6 ] )
SetKey( K_F7, keys_[ 7 ] )
SetKey( K_F8, keys_[ 8 ] )
SetKey( K_F9, keys_[ 9 ] )
SetKey( K_F10, keys_[ 10] )
endif
RETURN Nil
//-------------------------------------------------------------------//
// Wvt_Paint() must be a FUNCTION in your application
// as it is called when Window gets WM_PAINT message.
//-------------------------------------------------------------------//
FUNCTION Wvt_Paint()
LOCAL aBlocks := WvtSetBlocks()
aEval( aBlocks, {|e| eval( e ) } )
WvtPaintObjects()
RETURN 0
//-------------------------------------------------------------------//
// Wvt_SetFocus() must be a FUNCTION in your application
// needs to process messages sent through WM_SETFOCUS message
// received by the window.
//-------------------------------------------------------------------//
FUNCTION Wvt_SetFocus( hWnd )
LOCAL nRow := row()
LOCAL nCol := col()
DispOutAt( 1,3, 'Focus Gained!', 'r/w' )
DevPos( nRow, nCol )
RETURN nil
//-------------------------------------------------------------------//
// Wvt_KillFocus() must be a FUNCTION in your application
// needs to process messages sent through WM_KILLFOCUS message
// received by the window.
//-------------------------------------------------------------------//
FUNCTION Wvt_KillFocus( hWnd )
LOCAL nRow := row()
LOCAL nCol := col()
DispOutAt( 1,3, 'Focus Lost...', 'B/w' )
DevPos( nRow, nCol )
RETURN nil
//-------------------------------------------------------------------//
//
// Wvt_Mouse() must be present if you want to catch and fire
// mouse call back outside of the inkey() loop.
//
//-------------------------------------------------------------------//
FUNCTION Wvt_Mouse( nKey, nRow, nCol )
LOCAL i, nLen, aObjects := WvtSetObjects()
LOCAL nObj
STATIC nLastObj := 0
STATIC nLastKey := 0
if ( nLen := len( aObjects ) ) == 0
return nil
endif
if !SetMouseCheck()
return nil
endif
if nKey == -1000001
for nObj := 1 to nLen
DO CASE
CASE aObjects[ nObj, WVT_OBJ_STATE ] == OBJ_STATE_DISP
eval( aObjects[ nObj, WVT_OBJ_ONDISP ] )
CASE aObjects[ nObj, WVT_OBJ_STATE ] == OBJ_STATE_MOUSEOVER
eval( aObjects[ nObj, WVT_OBJ_ONMOUSEOVER ] )
CASE aObjects[ nObj, WVT_OBJ_STATE ] == OBJ_STATE_BUTTONDOWN
eval( aObjects[ nObj, WVT_OBJ_ONBUTTONDOWN ] )
CASE aObjects[ nObj, WVT_OBJ_STATE ] == OBJ_STATE_BUTTONUP
eval( aObjects[ nObj, WVT_OBJ_ONDISP ] )
CASE aObjects[ nObj, WVT_OBJ_STATE ] == OBJ_STATE_HIDE
ENDCASE
next
return nil
endif
nObj := ascan( aObjects, {|e_| e_[ WVT_OBJ_ROW ] <= nRow .and. ;
e_[ WVT_OBJ_ROWTO ] >= nRow .and. ;
e_[ WVT_OBJ_COL ] <= nCol .and. ;
e_[ WVT_OBJ_COLTO ] >= nCol } )
if nObj == 0
if nLastObj > 0
aObjects[ nLastObj, WVT_OBJ_STATE ] := OBJ_STATE_DISP
eval( aObjects[ nLastObj, WVT_OBJ_ONDISP ] )
nLastObj := 0
endif
return nil
endif
if nLastObj == nObj .and. nLastKey == nKey
return nil
endif
nLastObj := nObj
nLastKey := nKey
DO CASE
CASE nKey == K_MOUSEMOVE
if aObjects[ nLastObj, WVT_OBJ_STATE ] <> OBJ_STATE_MOUSEOVER
aObjects[ nLastObj, WVT_OBJ_STATE ] := OBJ_STATE_MOUSEOVER
if aObjects[ nObj, WVT_OBJ_ONMOUSEOVER ] <> nil
eval( aObjects[ nObj, WVT_OBJ_ONMOUSEOVER ] )
endif
endif
CASE nKey == K_LBUTTONDOWN
aObjects[ nLastObj, WVT_OBJ_STATE ] := OBJ_STATE_BUTTONDOWN
if aObjects[ nObj, WVT_OBJ_ONBUTTONDOWN ] <> nil
eval( aObjects[ nObj, WVT_OBJ_ONBUTTONDOWN ] )
endif
CASE nKey == K_LBUTTONUP
aObjects[ nLastObj, WVT_OBJ_STATE ] := OBJ_STATE_DISP
if aObjects[ nObj, WVT_OBJ_ONBUTTONUP ] <> nil
eval( aObjects[ nObj, WVT_OBJ_ONBUTTONUP ] )
endif
ENDCASE
RETURN nil
//-------------------------------------------------------------------//
//-------------------------------------------------------------------//
//-------------------------------------------------------------------//
// WvtSetBlocks() is a get/set FUNCTION to be used by Wvt_Paint()
//-------------------------------------------------------------------//
FUNCTION WvtSetBlocks( a_ )
LOCAL o
STATIC s := {}
o := aClone( s )
IF a_ <> nil
s := aClone( a_ )
ENDIF
RETURN o
//-------------------------------------------------------------------//
// WvtSetObjects() is a get/set FUNCTION to be used by Wvt_Mouse()
//-------------------------------------------------------------------//
FUNCTION WvtSetObjects( aObject )
LOCAL oObjects
STATIC aObjects := {}
oObjects := aclone( aObjects )
if aObject <> nil
if empty( aObject )
aObjects := {}
else
if valtype( aObject[ 1 ] ) == 'A'
aeval( aObject, {|e_| aadd( aObjects, e_ ) } )
else
aSize( aObject, WVT_OBJ_VRBLS )
DEFAULT aObject[ WVT_OBJ_STATE ] TO OBJ_STATE_DISP
aadd( aObjects, aObject )
endif
endif
endif
RETURN oObjects
//-------------------------------------------------------------------//
FUNCTION SetMouseCheck( lYes )
LOCAL lOYes
STATIC lSYes := .t.
lOYes := lSYes
if lYes <> nil
lSYes := lYes
endif
RETURN lOYes
//-------------------------------------------------------------------//
FUNCTION WvtWindowExpand( nUnits )
STATIC sUnits := 18
sUnits += nUnits
Wvt_setFont( 'Courier New', sUnits )
RETURN .t.
//-------------------------------------------------------------------//
//STATIC FUNCTION rgb( r,g,b )
//RETURN ( r + ( g * 256 ) + ( b * 256 * 256 ) )
//-------------------------------------------------------------------//
FUNCTION VouChoice( aChoices )
LOCAL scr, clr, nChoice
DEFAULT aChoices TO { 'One','Two','Three','Four','Five','Six','Seven' }
scr := SaveScreen( 7,48,13,55 )
clr := SetColor( 'N/W*,GR+/B*,,,GR+/B' )
nChoice := aChoice( 7, 48, 13, 55, aChoices )
setColor( clr )
RestScreen( 7, 48, 13, 55, scr )
RETURN nChoice
//-------------------------------------------------------------------//
FUNCTION WvtMyBrowse()
LOCAL nKey, bBlock, oBrowse , aLastPaint, i
LOCAL lEnd := .f.
LOCAL aBlocks := {}
LOCAL info_ := {}
LOCAL nTop := 3
LOCAL nLeft := 3
LOCAL nBottom := maxrow() - 2
LOCAL nRight := maxcol() - 3
LOCAL nCursor := setCursor( 0 )
LOCAL nRow := row()
LOCAL nCol := col()
LOCAL cColor := SetColor( 'N/W*,N/GR*,,,N/W*' )
LOCAL cScr := SaveScreen( 0,0,maxrow(),maxcol() )
LOCAL aObjects:= WvtSetObjects( {} )
LOCAL hPopup := Wvt_SetPopupMenu()
STATIC nStyle := 0
USE 'TEST' NEW
if NetErr()
return nil
endif
info_:= DbStruct()
Popups( 2 )
oBrowse := TBrowseNew( nTop + 3, nLeft + 2, nBottom - 1, nRight - 2 )
oBrowse:ColSep = ' '
oBrowse:HeadSep = '__'
oBrowse:GoTopBlock = { || dbGoTop() }
oBrowse:GoBottomBlock = { || dbGoBottom() }
oBrowse:SkipBlock = { | nSkip | dbSkipBlock( nSkip,oBrowse ) }
for i := 1 to len( info_ )
bBlock := VouBlockField( i )
oBrowse:AddColumn( TBColumnNew( info_[ i,1 ], bBlock ) )
next
oBrowse:configure()
if nStyle > 5
nStyle := 0
endif
Wvt_SetPen( nStyle, 0, rgb( 210,1210,210 ) )
nStyle++
aAdd( aBlocks, {|| Wvt_SetIcon( 'DIA_EXCL.ico' ) } )
aAdd( aBlocks, {|| Wvt_SetTitle( 'WVT Gui TBrowse()' ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxRaised( nTop, nLeft, nBottom, nRight ) } )
aAdd( aBlocks, {|| Wvt_DrawBoxRecessed( nTop+3, nLeft+2, nBottom-1, nRight-2 ) } )
aAdd( aBlocks, {|| Wvt_DrawGridHorz( oBrowse:nTop+3, oBrowse:nLeft, oBrowse:nRight, oBrowse:nBottom - oBrowse:nTop - 2 ) } )
aAdd( aBlocks, {|| Wvt_DrawGridVert( oBrowse:nTop, oBrowse:nBottom, oBrowse:aColumnsSep, len( oBrowse:aColumnsSep ) ) } )
aLastPaint := WvtSetBlocks( aBlocks )
DispBox( 0, 0, maxrow(), maxcol(), ' ', 'N/W' )
DispOutAt( nTop + 1, nleft, padc( HB_CurDrive()+':\'+CurDir()+'\'+'Test.dbf', nRight - nLeft + 1 ), 'W+/W' )
While !lEnd
oBrowse:ForceStable()
nKey = InKey( 0 )
BrwHandleKey( oBrowse, nKey, @lEnd )
end
Wvt_SetPen( 0 )
WvtSetBlocks( aLastPaint )
WvtSetObjects( aObjects )
DevPos( nRow, nCol )
SetColor( cColor )
SetCursor( nCursor )
DBCloseArea()
RestScreen( 0,0, maxrow(),maxcol(), cScr )
Wvt_setPopupMenu( hPopup )
RETURN nil
//-------------------------------------------------------------------//
STATIC FUNCTION DbSkipBlock( n, oTbr )
LOCAL nSkipped := 0
if n = 0
DBSkip( 0 )
elseif n > 0
do while nSkipped != n .and. TBNext( oTbr )
nSkipped++
enddo
else
do while nSkipped != n .and. TBPrev( oTbr )
nSkipped--
enddo
endif
RETURN nSkipped
//-------------------------------------------------------------------//
STATIC FUNCTION TBNext( oTbr )
LOCAL nSaveRecNum := recno()
LOCAL lMoved := .T.
if Eof()
lMoved := .F.
else
DBSkip( 1 )
if Eof()
lMoved := .F.
DBGoTo( nSaveRecNum )
endif
endif
RETURN lMoved
//-------------------------------------------------------------------//
STATIC FUNCTION TBPrev( oTbr )
LOCAL nSaveRecNum := Recno()
LOCAL lMoved := .T.
DBSkip( -1 )
if Bof()
DBGoTo( nSaveRecNum )
lMoved := .F.
endif
RETURN lMoved
//-------------------------------------------------------------------//
STATIC FUNCTION VouBlockField( i )
RETURN {|| fieldget( i ) }
//-------------------------------------------------------------------//
STATIC FUNCTION BrwHandleKey( oBrowse, nKey, lEnd )
LOCAL lRet := .t.
do case
case nKey == K_ESC
lEnd = .t.
case nKey == K_ENTER
lEnd := .t.
case nKey == K_DOWN
oBrowse:Down()
case nKey == K_UP
oBrowse:Up()
case nKey == K_LEFT
oBrowse:Left()
case nKey == K_RIGHT
oBrowse:Right()
case nKey = K_PGDN
oBrowse:pageDown()
case nKey = K_PGUP
oBrowse:pageUp()
case nKey = K_CTRL_PGUP
oBrowse:goTop()
case nKey = K_CTRL_PGDN
oBrowse:goBottom()
case nKey = K_HOME
oBrowse:home()
case nKey = K_END
oBrowse:end()
case nKey = K_CTRL_LEFT
oBrowse:panLeft()
case nKey = K_CTRL_RIGHT
oBrowse:panRight()
case nKey = K_CTRL_HOME
oBrowse:panHome()
case nKey = K_CTRL_END
oBrowse:panEnd()
case nKey == K_MWBACKWARD
oBrowse:down()
case nKey == K_MWFORWARD
oBrowse:up()
otherwise
lRet := .f.
endcase
RETURN lRet
//-------------------------------------------------------------------//
STATIC FUNCTION BrwOnEvent( oWvtBrw, cPaintID, oBrowse, nKey )
LOCAL lRet := .t., lRefAll := .f.
do case
case nKey == K_DOWN
oBrowse:Down()
case nKey == K_UP
oBrowse:Up()
case nKey == K_LEFT
oBrowse:Left()
case nKey == K_RIGHT
oBrowse:Right()
case nKey = K_PGDN
oBrowse:pageDown()
lRefAll := .t.
case nKey = K_PGUP
oBrowse:pageUp()
lRefAll := .t.
case nKey = K_CTRL_PGUP
oBrowse:goTop()
lRefAll := .t.
case nKey = K_CTRL_PGDN
oBrowse:goBottom()
lRefAll := .t.
case nKey = K_HOME
oBrowse:home()
case nKey = K_END
oBrowse:end()
case nKey = K_CTRL_LEFT
oBrowse:panLeft()
case nKey = K_CTRL_RIGHT
oBrowse:panRight()
case nKey = K_CTRL_HOME
oBrowse:panHome()
case nKey = K_CTRL_END
oBrowse:panEnd()
case nKey == K_MWBACKWARD
oBrowse:down()
case nKey == K_MWFORWARD
oBrowse:up()
case nKey == K_SBTHUMBTRACKVERT
OrdKeyGoTo( oWvtBrw:GetPos() )
lRefAll := .t.
case nKey == K_SBTHUMBTRACKHORZ
oBrowse:ColPos := oWvtBrw:GetPos()
case nKey == K_SBLINEUP
oBrowse:up()
case nKey == K_SBLINEDOWN
oBrowse:down()
case nKey == K_SBPAGEUP
oBrowse:PageUp()
case nKey == K_SBPAGEDOWN
oBrowse:PageDown()
case nKey == K_SBLINELEFT
oBrowse:Left()
case nKey == K_SBLINERIGHT
oBrowse:Right()
case nKey == K_SBPAGELEFT
oBrowse:Left()
case nKey == K_SBPAGERIGHT
oBrowse:right()
otherwise
lRet := .f.
endcase
if lRet
if lRefAll
oBrowse:RefreshAll()
endif
oBrowse:ForceStable()
oWvtBrw:SetPos( OrdKeyCount(),OrdKeyNo() )
oWvtBrw:SetPos( oBrowse:ColCount, oBrowse:ColPos )
endif
RETURN Nil
//-------------------------------------------------------------------//
FUNCTION WvtPartialScreen()
LOCAL scr := SaveScreen( 7,20,15,60 )
LOCAL wvtScr := Wvt_SaveScreen( 0, 0, MaxRow(), MaxCol() )
LOCAL wvtScr1
LOCAL aLastPaint
LOCAL hPopup := Wvt_SetPopupMenu()
aLastPaint := WvtSetBlocks( {} )
DispBox( 7, 20, 15, 60, ' ', 'W/GR*' )
@ 10,25 SAY 'Wvt_SaveScreen()' COLOR 'N/GR*'
@ 11,25 SAY 'Wvt_RestScreen()' COLOR 'N/GR*'
@ 13,25 SAY 'Press Esc ' COLOR 'N/GR*'
Wvt_DrawBoxRecessed( 8,22,14,58 )
wvtScr1 := Wvt_SaveScreen( 7,20,15,60 )
do while inkey( 0 ) <> K_ESC
enddo
DispBox( 7, 20, 15, 60, ' ', 'W/B*' )
@ 10,25 SAY 'Wvt_SaveScreen()' COLOR 'N/B*'
@ 11,25 SAY 'Wvt_RestScreen()' COLOR 'N/B*'
@ 13,25 SAY 'Press Esc ' COLOR 'N/B*'
Wvt_DrawBoxRecessed( 8,22,14,58 )
do while inkey( 0 ) <> K_ESC
enddo
Wvt_RestScreen( 7,20,15,60, wvtScr1 )
do while inkey( 0 ) <> K_ESC
enddo
RestScreen( 7,20,15,60,scr )
Wvt_RestScreen( 0, 0, MaxRow(), MaxCol(), wvtScr )
WvtSetBlocks( aLastPaint )
Wvt_SetPopupMenu( hPopup )
RETURN NIL
//-------------------------------------------------------------------//
function WvtLines()
LOCAL scr := SaveScreen( 0,0,maxrow(),maxcol() )
LOCAL clr := SetColor( 'N/W' )
LOCAL nRows := maxrow()
LOCAL nCols := maxcol()
LOCAL aLastPaint := WvtSetBlocks( {} )
LOCAL aObjects := WvtSetObjects( {} )
LOCAL hPopup := Wvt_SetPopupMenu()
CLS
Wvt_DrawLine( 0, 0, 0, nCols, WVT_LINE_HORZ, WVT_LINE_RAISED , WVT_LINE_CENTER )
Wvt_DrawLine( 1, 0, 1, nCols, WVT_LINE_HORZ, WVT_LINE_RECESSED, WVT_LINE_TOP )
Wvt_DrawLine( 2, 0, 2, nCols, WVT_LINE_HORZ, WVT_LINE_PLAIN , WVT_LINE_CENTER, WVT_LINE_SOLID, 4, Rgb( 255,255,255 ) )
Wvt_DrawLine( 3, 0, 3, nCols, WVT_LINE_HORZ, WVT_LINE_RAISED , WVT_LINE_CENTER, WVT_LINE_DASH , 0, Rgb( 255,0,0 ) )
Wvt_DrawLine( 4, 0, 4, nCols, WVT_LINE_HORZ, WVT_LINE_RECESSED, WVT_LINE_BOTTOM )
@ 0, 1 SAY 'Center Raised'
@ 1,11 say 'Top Recessed'
@ 2,21 say 'Center Plain White 3 Pixels'
@ 3,31 say 'Center Raised Dotted'
@ 4,41 SAY 'Bottom Recessed'
@ 5, 1 SAY 'Bottom Checked'
@ nRows, 0 Say PadC( 'Press ESC to Quit', nCols+1 ) COLOR 'GR+/W'
Wvt_DrawLine( 11, 5,nRows-2, 5, WVT_LINE_VERT, WVT_LINE_RAISED , WVT_LINE_CENTER )
Wvt_DrawLine( 11, 6,nRows-2, 6, WVT_LINE_VERT, WVT_LINE_RECESSED, WVT_LINE_CENTER )
Wvt_DrawLine( 11, 7,nRows-2, 7, WVT_LINE_VERT, WVT_LINE_PLAIN , WVT_LINE_LEFT )
Wvt_DrawLine( 11, 8,nRows-2, 8, WVT_LINE_VERT, WVT_LINE_PLAIN , WVT_LINE_CENTER )
Wvt_DrawLine( 11, 9,nRows-2, 9, WVT_LINE_VERT, WVT_LINE_PLAIN , WVT_LINE_RIGHT )
Wvt_DrawLine( 11,10,nRows-2,10, WVT_LINE_VERT, WVT_LINE_PLAIN , WVT_LINE_CENTER, WVT_LINE_DOT, 0, RGB( 0,0,255 ) )
Wvt_DrawLine( 11,11,nRows-2,11, WVT_LINE_VERT, WVT_LINE_PLAIN , WVT_LINE_CENTER, WVT_LINE_DASH, 0, RGB( 255,0,0 ) )
Wvt_DrawLine( 11,12,nRows-2,12, WVT_LINE_VERT, WVT_LINE_PLAIN , WVT_LINE_CENTER, WVT_LINE_DASHDOT, 0, RGB( 0,255,0 ) )
@ 12,5 Say 'A'
@ 13,6 Say 'B'
@ 14,7 Say 'C'
@ 15,8 Say 'D'
@ 16,9 Say 'E'
do while ( inkey(0) <> 27 )
enddo
// Restore Environments
//
SetColor( clr )
RestScreen( 0,0,maxrow(),maxcol(), scr )
WvtSetBlocks( aLastPaint )
WvtSetObjects( aObjects )
Wvt_SetPopupMenu( hPopup )
RETURN nil
//-------------------------------------------------------------------//
FUNCTION DispStatusMsg( cMsg )
Wvt_DrawLabel( MaxRow(), 60, cMsg, 6, , 0, rgb(198,198,198), 'Arial', 18, , 900 )
RETURN .t.
//-------------------------------------------------------------------//
FUNCTION ClearStatusMsg()
LOCAL nRow := Row()
LOCAL nCol := Col()
DispOutAt( MaxRow(), 42, space( 37 ), 'W/W' )
SetPos( nRow, nCol )
RETURN .t.
//-------------------------------------------------------------------//
FUNCTION Popups( nID, lDestroy )
LOCAL hPop, hPop1
LOCAL nPrompt := MF_ENABLED+MF_STRING
static hPop_:= { , , , , , , , , }
if nID == nil
Wvt_SetPopupMenu()
return nil
endif
if lDestroy <> nil
Wvt_DestroyMenu( hPop_[ nID ] )
return nil
endif
hPop := hPop_[ nID ]
do case
case nID == 1 // Data Entry Module
if hPop == nil
hPop := Wvt_CreatePopupMenu()
Wvt_AppendMenu( hPop, nPrompt, K_F2, 'Second Get Screen' )
Wvt_AppendMenu( hPop, nPrompt, K_F3, 'Expand Window' )
Wvt_AppendMenu( hPop, nPrompt, K_F4, 'Shrink Window' )
Wvt_AppendMenu( hPop, nPrompt, K_F5, 'Browse' )
Wvt_AppendMenu( hPop, nPrompt, K_F6, 'Minimize' )
Wvt_AppendMenu( hPop, nPrompt, K_F7, 'Partial Screen' )
Wvt_AppendMenu( hPop, nPrompt, K_F8, 'Lines' )
Wvt_AppendMenu( hPop, nPrompt, K_F9, 'Choose Font' )
Wvt_AppendMenu( hPop, nPrompt, K_F10,'Choose Color' )
Wvt_AppendMenu( hPop, MF_SEPARATOR )
Wvt_AppendMenu( hPop, nPrompt, K_F5, 'Browse' )
endif
case nID == 2 // Browser
if hPop == nil
hPop := Wvt_CreatePopupMenu()
Wvt_AppendMenu( hPop, nPrompt, K_DOWN , 'Down' )
Wvt_AppendMenu( hPop, nPrompt, K_UP , 'Up' )
Wvt_AppendMenu( hPop, nPrompt, K_PGDN , 'Page Down' )
Wvt_AppendMenu( hPop, nPrompt, K_PGUP , 'Page Up' )
Wvt_AppendMenu( hPop, nPrompt, K_CTRL_PGUP, 'Top' )
Wvt_AppendMenu( hPop, nPrompt, K_CTRL_PGDN, 'Bottom' )
Wvt_AppendMenu( hPop, MF_SEPARATOR )
hPop1 := Wvt_CreatePopupMenu()
Wvt_AppendMenu( hPop1, nPrompt, K_RIGHT , 'Right' )
Wvt_AppendMenu( hPop1, nPrompt, K_LEFT , 'Left' )
Wvt_AppendMenu( hPop1, nPrompt, K_END , 'End' )
Wvt_AppendMenu( hPop1, nPrompt, K_HOME , 'Home' )
Wvt_AppendMenu( hPop, MF_ENABLED+MF_POPUP, hPop1, 'Column Movement' )
endif
endcase
hPop_[ nID ] := hPop
RETURN Wvt_SetPopupMenu( hPop_[ nID ] )
//-------------------------------------------------------------------//
FUNCTION WvtPictures( nSlot,cFilePic )
if nSlot <> nil .and. nSlot <= 20 .and. file( cFilePic )
if pic_[ nSlot ] <> cFilePic
if Wvt_LoadPicture( cFilePic, nSlot )
pic_[ nSlot ] := cFilePic
endif
endif
endif
RETURN nil
//-------------------------------------------------------------------//
FUNCTION WvtExePicture( nTop, nLeft, nBottom, nRight, nSlot, aOffset )
if pic_[ nSlot ] <> nil
Wvt_DrawPicture( nTop, nLeft, nBottom, nRight, nSlot, aOffSet )
endif
RETURN nil
//-------------------------------------------------------------------//
FUNCTION CreateMainMenu()
LOCAL oMenu
LOCAL g_oMenuBar := wvtMenu():new():create()
oMenu := wvtMenu():new():create()
oMenu:= "Wvt*Classes"
oMenu:AddItem( "Dialog One", {|| MyDialogOne() } )
oMenu:AddItem( "Dialog Two", {|| MyDialogTwo() } )
oMenu:AddItem( "-" )
oMenu:AddItem( "Exit" , {|| __keyboard( K_ESC ) } )
g_oMenuBar:addItem( "",oMenu )
oMenu := wvtMenu():new():create()
oMenu:Caption := "Traditional"
oMenu:AddItem( "Next Gets" , {|| WvtNextGets() } )
oMenu:AddItem( "Browser" , {|| WvtMyBrowse() } )
oMenu:AddItem( "Partial Screen", {|| WvtPartialScreen() } )
oMenu:AddItem( "-")
oMenu:AddItem( "Wvt Lines" , {|| WvtLines() } )
g_oMenuBar:addItem( "",oMenu )
oMenu := wvtMenu():new():create()
oMenu:= "Common Dialogs"
oMenu:AddItem( "Fonts" ,{|| Wvt_ChooseFont() } )
oMenu:AddItem( "-")
oMenu:AddItem( "Colors",{|| Wvt_ChooseColor() } )
g_oMenuBar:addItem( "",oMenu)
oMenu := wvtMenu():new():create()
oMenu:= "Functionality"
oMenu:AddItem( "Expand" ,{|| WvtWindowExpand( 1 ) } )
oMenu:AddItem( "Shrink" ,{|| WvtWindowExpand( -1 ) } )
oMenu:AddItem( "-")
oMenu:AddItem( "Minimize",{|| Wvt_Minimize() } )
g_oMenuBar:addItem( "",oMenu)
RETURN g_oMenuBar
//-------------------------------------------------------------------//
STATIC FUNCTION ActivateMenu( oMenu )
LOCAL nMenu := Wvt_GetLastMenuEvent()
LOCAL aMenuItem
IF !EMPTY( nMenu )
IF HB_ISOBJECT( oMenu )
IF !EMPTY( aMenuItem := oMenu:FindMenuItemById( nMenu ) )
IF HB_ISBLOCK( aMenuItem[ WVT_MENU_ACTION ] )
EVAL( aMenuItem[ WVT_MENU_ACTION ] )
ENDIF
ENDIF
ENDIF
ENDIF
RETURN ( NIL )
//-------------------------------------------------------------------//
STATIC FUNCTION MyDialogOne()
LOCAL aObjects:= WvtSetBlocks( {} )
Local nWinRows, nWinCols, cWinTitle, cFont, nHeight, nWidth
Local oDlg, obj_, oBar, d_, nN, cUseAlias
Local oText, oTBar, aImg_, oImg, oLine, oBox, oBtn, oBtn2
Local oBBox, oCon, oGet, oGet2, nRowG, oBBox2, oBnr, oTBx
Local oBRsd, cTxt, oRct, nGetCol, nSayCol, bBlock, bBlock1
Local oMnu, oWvtBrw, oWvtBrw1, lOpen, lOpen1, cUseAlias1, oGetArea, oGet1
LOCAL hPopup, nGetRow, aGets_, lChkMouse
WvtSetKeys( .f. )
lChkMouse := SetMouseCheck( .f. )
hPopup := Wvt_SetPopupMenu()
Popups()
cTxt := 'GtWvt is capable of designing virtually any preceivable control '
cTxt := cTxt + 'Windows offers.'
cTxt := cTxt + CRLF + CRLF
cTxt := cTxt + 'This text is placed in a WvtTextBox() control with '
cTxt := cTxt + 'font and alignment adjustments!'
cTxt := cTxt + CRLF + CRLF
cTxt := cTxt + 'Enjoy - Pritpal Bedi, INDIA'
aImg_:={}
aadd( aImg_, 'v_lock.bmp' )
aadd( aImg_, 'v_new.bmp' )
aadd( aImg_, 'v_clclt.bmp' )
aadd( aImg_, 'v_calend.bmp' )
aadd( aImg_, 'v_index.bmp' )
aadd( aImg_, 'v_notes1.bmp' )
aadd( aImg_, 'v_selct1.bmp' )
nWinRows := 55
nWinCols := 185
cWinTitle := 'WvtGui Dialog One'
cFont := 'Courier New'
nHeight := 13
oDlg := WvtDialog():New( nWinRows, nWinCols, cWinTitle, cFont, nHeight )
oDlg:nTooltipWidth := 300
oDlg:nTooltipTextColor := RGB( 255,0,0 )
oBar := WvtStatusBar():New( oDlg,201 )
oBar:SetPanels( { 50,100 } )
oBar:SetText( 1, 'Tab.SH_Tab.Left_Click - Select a Browse' )
oBar:SetText( 2, 'GtWvt is Fantastic', 'w+/W' )
oBar:SetText( 3, 'WOW' )
oBar:nPointer := WVT_IDC_HAND
oBar:Tooltip := 'GtWvt Statusbar with 3 panels'
oDlg:AddObject( oBar )
oBox := WvtStatic():New( oDlg,110,4,oDlg:MaxCol()-40,7,oDlg:MaxCol()-2 )
oBox:nStatic := WVT_STATIC_BOXRECESSED
oDlg:AddObject( oBox )
oText := WvtLabel():New( oDlg, 101, 4, oDlg:MaxCol()-40, 7,oDlg:MaxCol()-2 )
oText:Text := 'xHarbour'
oText:Height := 36
oText:AlignHorz := 2
oText:AlignVert := 2
oText:Weight := 700
oText:TextColor := RGB( 100, 255, 12 )
oText:BackColor := RGB( 0, 0, 255 )
oText:TextColorHoverOn := RGB( 255, 255, 0 )
oText:BackColorHoverOn := RGB( 255, 100, 12 )
oText:ToolTip := 'Software that GROWS with you'
oText:bOnSelect := {|o,v| .t. }
oText:Italic := .t.
oDlg:AddObject( oText )
oImg := WvtImage():New( oDlg,102,20,oDlg:MaxCol()-40,37,oDlg:MaxCol()-2 )
oImg:cImage := aImg_[ 5 ]
oImg:Tooltip := 'WvtImage():New()'
oDlg:AddObject( oImg )
oTBar := WvtToolbar():New( oDlg,103, 0,0,2 )
oTBar:lFloating := .f.
oTBar:Tooltip := 'Toolbar'
oTBar:AddButton( aImg_[ 1 ], {|| oImg:SetImage( aImg_[ 1 ] ) } , 'Lock' )
oTBar:AddButton( aImg_[ 2 ], {|| oImg:SetImage( aImg_[ 2 ] ), oText:SetText( 'xHarbour' ) } , 'New' )
oTBar:AddButton( aImg_[ 3 ], {|| oImg:SetImage( aImg_[ 3 ] ) } , 'Calculator' )
oTBar:AddButton()
oTBar:AddButton( aImg_[ 5 ], {|| oImg:SetImage( aImg_[ 5 ] ) } , 'Restore' )
oTBar:AddButton( aImg_[ 4 ], {|| oImg:SetImage( aImg_[ 4 ] ), oText:SetText( 'Vouch' ) } , 'Calendar' )
oTBar:AddButton( aImg_[ 6 ], {|| oImg:SetImage( aImg_[ 6 ] ) } , 'Notes' )
oTBar:AddButton( aImg_[ 7 ], {|| oImg:SetImage( aImg_[ 7 ] ) } , 'Press to Send Browse on Top' )
oTBar:AddButton()
oDlg:AddObject( oTBar )
oLine := WvtStatic():New( oDlg, 105, 39, 0, 39, oDlg:MaxCol() )
oLine:nStatic := WVT_STATIC_LINE
oDlg:AddObject( oLine )
oBBox := WvtStatic():New( oDlg,125,4,127,37,139 )
oBBox:nStatic := WVT_STATIC_BOXGROUP
oDlg:AddObject( oBBox )
oBtn := WvtPushButton():New(oDlg, 124, 6, 129, 7, 137 )
oBtn:cCaption := 'Print'
oBtn:bOnLeftUp := {|| Wvt_Keyboard( 379 ) }
oBtn:Tooltip := 'Open Printing Dialog for the Browser in Focus'
oDlg:AddObject( oBtn )
oBtn2 := WvtPushButton():New( oDlg, 124, 9, 129, 12, 137 )
oBtn2:cFileImage := aImg_[ 3 ]
oBtn2:block := {|| oCon:Say( 1,60,' This is Triggering Read ','w+/w' ),oGet:Read() }
oBtn2:Tooltip := 'This Push Button will trigger Gets at the right!'
oDlg:AddObject( oBtn2 )
oBBox2 := WvtStatic():New( oDlg, , 9, oDlg:MaxCol()-40, 18, oDlg:Maxcol()-2 )
oBBox2:nStatic := WVT_STATIC_BOXGROUP
oDlg:AddObject( oBBox2 )
oCon := WvtConsole():New( oDlg )
oDlg:AddObject( oCon )
nGetCol := 158
bBlock := {|| oCon:Say( 12, 148, 'Name' ,'N/W' ),;
oCon:Say( 14, 148, 'Date' ,'N/W' ),;
oCon:Say( 16, 148, 'Amount','N/W' ) }
oGet := WvtGets():New( oDlg, 210, 9, oDlg:Maxcol()-40, 18, oDlg:Maxcol()-2 )
oGet:AddGets( 12, nGetCol, 'GTWvt ', '@! ','W+/B*,N/W*' )
oGet:AddGets( 14, nGetCol, date() )
oGet:AddGets( 16, nGetCol, 2122.57, '@Z 99999999.99','w+/R,GR+/B' )
oGet:Tooltip := 'WvtGets():New() - ReadModal() like Clipper'
oGet:cDesc := 'Normal Get Box'
oGet:bOnCreate := bBlock
oDlg:AddObject( oGet )
oBnr := WvtBanner():New( oDlg, 101, 0, 127, 1,oDlg:MaxCol()-2 )
oBnr:nTimeDelay := 0.25
oBnr:cText := 'the compiler that EXTENDS with you'
oBnr:nFontHeight := 24
oBnr:nDirection := 0
oBnr:nAlignVert := 2
oBnr:nFontWeight := 0
oBnr:nTextColor := RGB( 253,251,170 )
oBnr:nBackColor := RGB( 128,227,142 )
oBnr:nTextColorHoverOn := RGB( 255,255,0 )
oBnr:nBackColorHoverOn := RGB( 255,100,12 )
oBnr:Tooltip := 'WvtBanner():New()'
oDlg:AddObject( oBnr )
oBRsd := WvtStatic():New( oDlg, , 41,127,52,oDlg:MaxCol()-2 )
oBRsd:nStatic := WVT_STATIC_BOXGROUPRAISED
oDlg:AddObject( oBRsd )
oRct := WvtStatic():New( oDlg, , 41,127,52,oDlg:MaxCol()-2 )
oRct:nStatic := WVT_STATIC_SHADEDRECT
oRct:aRGBb := { 0xffff, 0x0000, 0x0000, 0x0000 }
oRct:aRGBe := { 0x0000, 0xffff, 0xffff, 0x0000 }
oDlg:AddObject( oRct )
oTBx := WvtTextBox():New( oDlg, , 42,129,51,oDlg:MaxCol()-4 )
oTBx:cText := cTxt
oTBx:Tooltip := 'WvtTextBox():New()'
oTBx:nFontHeight := 16
oTBx:lItalic := .t.
oTBx:lUnderline := .t.
oTBx:nAlignHorz := 2
oTBx:nTextColor := RGB( 255,255,255 )
oTBx:nTextColorHoverOn := RGB( 0,0,255 )
oTBx:aPopup := {}
aadd( oTBx:aPopup, { 'Getsome' , {|| .t. } } )
aadd( oTBx:aPopup, { 'Getsome2', {|| .t. } } )
oDlg:AddObject( oTBx )
oGetArea := WvtStatic():New( oDlg, , 4, 2, 37, 62 )
oGetArea:nStatic := WVT_STATIC_BOXRAISED
oDlg:AddObject( oGetArea )
nGetCol := 20
nSayCol := 7
nGetRow := 7
bBlock1 := {|| oCon:Say( nGetRow+00, nSayCol, 'First Name' ,'N/W' ),;
oCon:Say( nGetRow+02, nSayCol, 'Last Name ' ,'N/W' ),;
oCon:Say( nGetRow+04, nSayCol, 'Street' ,'N/W' ),;
oCon:Say( nGetRow+06, nSayCol, 'City' ,'W+/W'),;
oCon:Say( nGetRow+08, nSayCol, 'State' ,'N/W' ),;
oCon:Say( nGetRow+10, nSayCol, 'Zip' ,'B+/W'),;
oCon:Say( nGetRow+12, nSayCol, 'Date Hired' ,'B+/W'),;
oCon:Say( nGetRow+14, nSayCol, 'Married' ,'B+/W'),;
oCon:Say( nGetRow+16, nSayCol, 'Age' ,'B+/W'),;
oCon:Say( nGetRow+18, nSayCol, 'Salary' ,'B+/W'),;
oCon:Say( nGetRow+20, nSayCol, 'Notes', ,'B+/W') ;
}
aGets_:= { pad('Pritpal',20 ), pad( 'Bedi',20 ), pad( '60, New Professor Colony',30 ), ;
pad( 'Ludhiana, INDIA',30 ),;
'PB', pad( '141004',10 ), ctod( '22/06/04' ), .t., 48, 17000, ;
pad( 'Wvtgui is a classical example of xHarbour capabilities...',65 ) }
oGet1 := WvtGets():New( oDlg, , 4, 2, 37, 62 )
oGet1:AddGets( nGetRow+00, nGetCol, aGets_[ 1 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+02, nGetCol, aGets_[ 2 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+04, nGetCol, aGets_[ 3 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+06, nGetCol, aGets_[ 4 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+08, nGetCol, aGets_[ 5 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+10, nGetCol, aGets_[ 6 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+12, nGetCol, aGets_[ 7 ], '@ ' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+14, nGetCol, aGets_[ 8 ], '@Y' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+16, nGetCol, aGets_[ 9 ], '@Z 99' , 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+18, nGetCol, aGets_[ 10], '@Z 999999', 'N/W*,N/GR*' )
oGet1:AddGets( nGetRow+20, nGetCol, aGets_[ 11], '@S35' , 'N/W*,N/GR*' )
oGet1:cDesc := 'Test.dbf Fields'
oGet1:Tooltip := 'Double Click to Activate ReadModal()'
oGet1:bOnCreate := bBlock1
oDlg:AddObject( oGet1 )
oMnu := WvtMenu():New():Create()
oMnu:Caption := 'Dialogs'
oMnu:AddItem( 'Dialog Two', {|| MyDialogTwo() } )
oDlg:oMenu := oMnu
lOpen := .f.
cUseAlias := 'TEST'
USE 'TEST' NEW ALIAS ( cUseAlias ) SHARED
if !NetErr()
lOpen := .t.
oWvtBrw := CfgMyBrowse( { 1,7,9,10,8 }, cUseAlias, { 6,67,36,120 }, 'Test.dbf - 1,7,9,10,8', oDlg, 'N/W*,N/GR*',1001 )
oDlg:AddObject( oWvtBrw )
endif
lOpen1 := .f.
cUseAlias1 := 'TEST1'
USE 'TEST' NEW ALIAS ( cUseAlias1 ) SHARED
if !NetErr()
lOpen1 := .t.
oWvtBrw1 := CfgMyBrowse( { 1,2,3,4,5,6 }, cUseAlias1, { 43,4,51,120 }, 'Test.dbf - 1,2,3,4,5,6',oDlg, 'N/BG*,N/W*',1002 )
oDlg:AddObject( oWvtBrw1 )
endif
oDlg:Create()
oDlg:Execute()
oDlg:Destroy()
if lOpen
Select( cUseAlias )
USE
endif
if lOpen1
Select( cUseAlias1 )
USE
endif
WvtSetBlocks( aObjects )
WvtSetKeys( .t. )
Wvt_SetPopupMenu( hPopup )
SetMouseCheck( lChkMouse )
RETURN Nil
//-------------------------------------------------------------------//
STATIC FUNCTION MyDialogTwo()
LOCAL aObjects := WvtSetBlocks( {} )
LOCAL oDlg := WvtDialog():New( 30,90,'My Dialog Two' )
oDlg:Create()
oDlg:Execute()
oDlg:Destroy()
WvtSetBlocks( aObjects )
RETURN Nil
//-------------------------------------------------------------------//
STATIC FUNCTION CfgMyBrowse( aFields, cUseAlias, aTLBR, cDesc, oParent, cColorSpec, nID )
LOCAL info_, oWvtBrw, oBrowse, i, bBlock
LOCAL aPopup := {}
aadd( aPopup, { 'Down' , {|| oBrowse:Down() , oBrowse:ForceStable() } } )
aadd( aPopup, { 'Up' , {|| oBrowse:Up() , oBrowse:ForceStable() } } )
aadd( aPopup, { 'Page Down', {|| oBrowse:PageDown(), oBrowse:ForceStable() } } )
aadd( aPopup, { 'Page Up' , {|| oBrowse:PageUp() , oBrowse:ForceStable() } } )
aadd( aPopup, { 'Top' , {|| oBrowse:GoTop() , oBrowse:ForceStable() } } )
aadd( aPopup, { 'Bottom' , {|| oBrowse:GoBottom(), oBrowse:ForceStable() } } )
Select( cUseAlias )
info_:= DbStruct()
oBrowse := TBrowseNew( aTLBR[ 1 ], aTLBR[ 2 ], aTLBR[ 3 ], aTLBR[ 4 ] )
oBrowse:ColSep := ' '
oBrowse:HeadSep := '__'
oBrowse:ColorSpec := cColorSpec
oBrowse:GoTopBlock := { || dbGoTop() }
oBrowse:GoBottomBlock := { || dbGoBottom() }
oBrowse:SkipBlock := { | nSkip | dbSkipBlock( nSkip,oBrowse ) }
for i := 1 to len( aFields )
bBlock := VouBlockField( aFields[ i ] )
oBrowse:AddColumn( TBColumnNew( info_[ aFields[ i ],1 ], bBlock ) )
next
oBrowse:configure()
oWvtBrw := WvtBrowse():New( oParent,nID )
oWvtBrw:nTop := aTLBR[ 1 ]
oWvtBrw:nLeft := aTLBR[ 2 ]
oWvtBrw:nBottom := aTLBR[ 3 ]
oWvtBrw:nRight := aTLBR[ 4 ]
oWvtBrw:cAlias := cUseAlias
oWvtBrw:oBrw := oBrowse
oWvtBrw:cDesc := cDesc
oWvtBrw:nPointer := WVT_IDC_HAND
oWvtBrw:cColorHilite := 'W+/B*'
oWvtBrw:Tooltip := cDesc
oWvtBrw:aPopup := aPopup
oWvtBrw:bHandleEvent := {|oWvtBrw,cPaintID,oBrowse,nKey| BrwOnEvent( oWvtBrw,cPaintID,oBrowse,nKey ) }
RETURN oWvtBrw
//-------------------------------------------------------------------//
//-------------------------------------------------------------------//
STATIC FUNCTION rgb( r,g,b )
RETURN ( r + ( g * 256 ) + ( b * 256 * 256 ) )Este es el codigo de Error -- Este es el log
Application Internal Error - K:\v_xharb_v3\prueba_v.exe
Terminated at: 2015-03-01 19:22:58
Unrecoverable error 6005: Exception error:
Exception Code:C0000005 ACCESS_VIOLATION
Exception Address:004132DD
EAX:00000000 EBX:00000000 ECX:0026C96C EDX:00000001
ESI:00000000 EDI:004FE1EA EBP:0018FDF0
CS:EIP:0023:004132DD SS:ESP:0018FDD0
DS:002B ES:002B FS:0053 GS:002B
Flags:00010246
Exception Parameters: 00000000 000015D4
CS:EIP: 8B B3 D4 15 00 00 6A 01 E8 5E BF 01 00 59 89 83
SS:ESP: 00000000 0052822C 0041E1B8 00000001 00000000 0026A88C 00000000 00000000 0018FF04 00418266 00000000 00000000 00000001 00511F04 0000001A 00000009
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
004132DD 0018FDF0 0018FF04 00418266 00000000 00000000 00000001 00511F04 0000001A 00000009 0052869C 003A5458
00418266 0018FF04 0018FF2C 0040130C 004FE0CC 004FD0C8 0041E1B8 00000000 00000000 00000000 00000000 00000093
0040130C 0018FF2C 0018FF40 0041753B 00000000 004FD048 7FFDE000
0041753B 0018FF40 0018FF4C 00445826 00000001
00445826 0018FF4C 0018FF78 004F947F 00000001 00260130 00260868 00401188 00401188 7FFDE000 7FFDE000 0018FFCC
004F947F 0018FF78 0018FF94 00000000 004FD048 74DF7C04 7FFDE000 74DF7BE0 9B9B8870
00000000 0018FF94 0018FFDC 7724B5AF 7FFDE000 985AB61A 00000000 00000000 7FFDE000 C0000005 75AEF510 00007FFD
Modules:
00400000 00140000 K:\v_xharb_v3\prueba_v.exe
771F0000 0016E000 C:\Windows\SYSTEM32\ntdll.dll
74DE0000 00140000 C:\Windows\SYSTEM32\KERNEL32.DLL
75A30000 000D7000 C:\Windows\SYSTEM32\KERNELBASE.dll
76FC0000 00153000 C:\Windows\SYSTEM32\USER32.DLL
75460000 0010E000 C:\Windows\SYSTEM32\GDI32.DLL
72BC0000 00089000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9600.17415_none_7c5769eaaa0aa358\COMCTL32.DLL
74FC0000 0009B000 C:\Windows\SYSTEM32\COMDLG32.DLL
75D10000 012AC000 C:\Windows\SYSTEM32\SHELL32.DLL
75570000 00128000 C:\Windows\SYSTEM32\OLE32.DLL
74F20000 00095000 C:\Windows\SYSTEM32\OLEAUT32.DLL
756F0000 0007C000 C:\Windows\SYSTEM32\ADVAPI32.dll
757A0000 000C3000 C:\Windows\SYSTEM32\msvcrt.dll
756A0000 00045000 C:\Windows\SYSTEM32\SHLWAPI.dll
752E0000 0017D000 C:\Windows\SYSTEM32\combase.dll
75870000 000BA000 C:\Windows\SYSTEM32\RPCRT4.dll
74A30000 00041000 C:\Windows\SYSTEM32\sechost.dll
749F0000 0001E000 C:\Windows\SYSTEM32\SspiCli.dll
73820000 0008B000 C:\Windows\SYSTEM32\SHCORE.DLL
749E0000 0000A000 C:\Windows\SYSTEM32\CRYPTBASE.dll
74980000 00054000 C:\Windows\SYSTEM32\bcryptPrimitives.dll
75770000 00027000 C:\Windows\system32\IMM32.DLL
74A80000 00113000 C:\Windows\SYSTEM32\MSCTF.dll
6FF10000 0007B000 C:\Program Files (x86)\AVG\AVG2015\avghookx.dll
Called from WVT_SETPOPUPMENU(0)
Called from PRUEBA_V(147) in prueba_v.prg
------------------------------------------------------------------------Asi lo Compilo
HBDIR=\harbour
BCDIR=\bcc582
FWDIR=\fwh
fprg =\v_xharb_v3
.path.obj = .\obj1
.path.prg = .\prg
.path.ch = $(FWDIR)\include;$(HBDIR)\include;$(fprg)\include
.path.c = .\;.\lc
.path.rc = .\rc
.path.res = .\rc
HFLAG1 = /n /m /es2 /gc1
HCLAG1 = -c -tWM
CINCLU = $(HBDIR)\include;$(fprg)\include;$(FWDIR)\include
CINCL1 = $(HBDIR)\include
CINCL2 = $(BCDIR)\include
OBJFIL = .\obj1
LIBFIL = $(fprg)\lib\Harb
DEFX=__HARBOUR__
DEXP=__EXPORT__
EXTLIBFILES =
DEFFILE =
HBFLAGS = -w0
CFLAG1 = -OS $(SHELL) $(CFLAGS) -d -c -L$(HBDIR)\lib
RFLAGS =
LFLAGS = -L$(BCDIR)\lib\obj;$(BCDIR)\lib;$(HBDIR)\lib -Gn -M -m -s -Tpe -x -ap
IFLAGS =
LINKER = ilink32
ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(LIBFILES) import32.lib cw32.lib
#important: Use Uppercase for filenames extensions, in the next two rules!
PRG = \
.\prueba_v.prg \
C = \
CPP = \
OBJ=$(PRG:.prg=.obj)
OBJS=$(OBJ:.\=.\obj1\)
COBJ=$(C:.c=.obj)
COBJS=$(COBJ:.\=.\obj1\)
COBJ=$(CPP:.cpp=.obj)
COBJS=$(COBJ:.\=.\obj1\)
PROJECT : prueba_v.exe
$(NOMEXE).exe : $(PRG:.prg=.OBJ) $(C:.c=.OBJ)
echo off
echo $(BCDIR)\lib\c0x32.obj + > b32.bc
echo .\obj1\prueba_v.obj , + >> b32.bc
echo prueba_v.exe, + >> b32.bc
echo prueba_v.map, + >> b32.bc
echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
echo $(HBDIR)\lib\hblang.lib + >> b32.bc
echo $(HBDIR)\lib\hbvm.lib + >> b32.bc
echo $(HBDIR)\lib\hbrtl.lib + >> b32.bc
echo $(HBDIR)\lib\hbrdd.lib + >> b32.bc
echo $(HBDIR)\lib\hbmacro.lib + >> b32.bc
echo $(HBDIR)\lib\hbpp.lib + >> b32.bc
echo $(HBDIR)\lib\rddntx.lib + >> b32.bc
echo $(HBDIR)\lib\rddcdx.lib + >> b32.bc
echo $(HBDIR)\lib\rddfpt.lib + >> b32.bc
echo $(HBDIR)\lib\hbcommon.lib + >> b32.bc
echo $(HBDIR)\lib\gtwin.lib + >> b32.bc
echo $(HBDIR)\lib\hbcpage.lib + >> b32.bc
echo $(HBDIR)\lib\hbct.lib + >> b32.bc
echo $(HBDIR)\lib\hbtip.lib + >> b32.bc
echo $(HBDIR)\lib\hbpcre.lib + >> b32.bc
echo $(HBDIR)\lib\hbhsx.lib + >> b32.bc
echo $(HBDIR)\lib\hbsix.lib + >> b32.bc
echo $(HBDIR)\lib\hbdebug.lib + >> b32.bc
echo $(HBDIR)\lib\hbhpdf.lib + >> b32.bc
echo $(HBDIR)\lib\png.lib + >> b32.bc
echo $(HBDIR)\lib\hbzlib.lib + >> b32.bc
echo $(HBDIR)\lib\hbnf-bcc.lib + >> b32.bc
echo $(HBDIR)\lib\hbmisc.lib + >> b32.bc
echo $(HBDIR)\lib\gtwvt.lib + >> b32.bc
echo $(HBDIR)\lib\gtwvg.lib + >> b32.bc
echo $(HBDIR)\lib\xhb.lib + >> b32.bc
echo $(HBDIR)\lib\hbcplr.lib + >> b32.bc
echo $(HBDIR)\lib\hbwin.lib + >> b32.bc
echo $(HBDIR)\lib\gtgui.lib + >> b32.bc
echo $(BCDIR)\lib\cw32.lib + >> b32.bc
echo $(BCDIR)\lib\import32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\rasapi32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\psapi.lib + >> b32.bc
$(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
del b32.bc
del .\obj2\*.c /Q
del *.tds /Q
upx prueba_v.exe -9
.PRG.OBJ:
$(HBDIR)\bin\harbour $< $(HFLAG1) -D$(DEXP) -D$(DEFX) /O$(OBJFIL)\ /I$(CINCLU)
$(BCDIR)\bin\bcc32 $(HCLAG1) -I$(CINCL1) -o$(OBJFIL)\$& $(OBJFIL)\$&.c
.C.OBJ:
echo $(HCLAG1) -D$(DEFX) -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
$(BCDIR)\bin\bcc32 -o$(OBJFIL)\$& @tmp $<
del tmp
.CPP.OBJ:
echo $(HCLAG1) -D$(DEFX) -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
$(BCDIR)\bin\bcc32 -o$(OBJFIL)\$& @tmp $<
del tmp