Mira como hago y no tengo problemas con ningun Windows.
#Include "Ord.Ch"
LOCAL lPack := .T. // .T. Apaga os Registros Deletados.
// crea un CHECKBOX en el DIALOGO:
REDEFINE CHECKBOX lPack ID 21 OF oDlg COLORS nRgb( 250, 0, 0 ), nRgb( 72, 180, 215 ) UPDATE
REDEFINE BUTTONBMP oAceitar ID 701 OF oDlg RESOURCE "ORGPASTA" TEXTRIGHT ;
ACTION( ReIndPack( lPack, oMeter1, oMeter2, oMeter3, oMeter4, ;
oMeter5, oMeter6, DeOndeVem ), ;
lSaida := .T., oDlg:End() )
FUNCTION ReIndPack( lPack, oMeter1, oMeter2, oMeter3, oMeter4, oMeter5, ;
oMeter6, DeOndeVem )
AEVAL(DIRECTORY( "CADGRUPO.cdx" ),{ |aFILE| FERASE(aFILE[F_NAME]) } )
USE CADGRUPO NEW EXCLUSIVE ALIAS CADGRUPO
IF lPack = .T.
PACK
ENDIF
oMeter1:nTotal = RecCount()
INDEX ON VAL(Field->GRUPOCOD) TAG GRUPOCOD TO CADGRUPO ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
INDEX ON Field->GRUPODESCR TAG GRUPODESCR TO CADGRUPO ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
// NAO USADO POR ENQUANTO
INDEX ON Field->GRUPONOME TAG GRUPONOME TO CADGRUPO ;
FOR !DELETED() ;
EVAL ( oMeter1:Set( RecNo() ), CursorWait(), SysRefresh() ) ;
EVERY 10
CLOSE DATABASE
// sigue...
RETURN NIL
Saludos.