FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error al Ejecutar programa
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM

Error al Ejecutar programa

Posted: Mon Mar 02, 2015 12:24 AM
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

Code (fw): Select all Collapse
#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

Code (fw): Select all Collapse
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

Code (fw): Select all Collapse
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
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM

Re: Error al Ejecutar programa

Posted: Mon Mar 02, 2015 05:10 PM
Ruben, que usas para compilar?

Mira el tamaño del archivo.rc ó archivo.res?

El archivo.rc ó .res, debes tener en el máximo: 1.052.000 kbytes.

Bueno, pero FIVEWIN és mucho mejor.

https://searchcode.com/codesearch/view/4525942/

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion