Hola Antonio
Tengo un Punto de Venta recien instalado en unos equipos con XP y VISTA y los esta sacando bien seguido sin un patron de comportamiento igual hasta el momento, en el dialgo de la Venta, de pronto el sistema sin avisar en XP los saca y no genera error.log y en VISTA se bloquea y si genera error.log, lei en dias pasados un topico al problema que un colega tuvo con la clase DSAY "http://fivetechsoft.com/forums/viewtopic.php?t=9795"
yo uso FWH y Harbour, y las clases externas:
BTNGET, SSAY, TGRAPH, TSBUTTON, C5MENU, TWBROWSE Y VBOX, lo que resulta de todo es que en el topico del DSAY ahi le mencionas que corrija una linea de INVALIDATERECT y que con eso se solucionó, yo estuve revisando las clases y en el dialogo de la venta uso las clases externas BTNGET,TSBUTTON y VBOX, pero la SSAY por ahi usa el INVALIDATERECT en el metodo Default, pudiera estar por ahi el problema o sera otra cosa?, de todas las clases externas que uso unicamente en la SSAY encontre el InvalidateRect, te pongo un pedazo del error.log generado y parte de mi codigo. Acabo de quitar en el dialogo de venta el uso de SSAY, pero sigo enlazando la libreria al sistema, mientras voy a probar por ahi en lo que me pudieras ayudar.
ERROR.LOG
Application
===========
Path and name: E:\Pventa\Caja5.exe (32 bits)
Size: 2,547,712 bytes
Time from start: 0 hours 0 mins 18 secs
Error occurred at: 20/01/2008, 23:32:47
Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = U
Stack Calls
===========
Called from: => TWINDOW:LVALID(0)
Called from: => TCONTROL:FWLOSTFOCUS(0)
Called from: => TCONTROL:HANDLEEVENT(0)
Called from: => TCONTROL:HANDLEEVENT(0)
Called from: C:ProyectosHarbourxPV2uenteswindow.prg => _FWH(3165)
Called from: => DIALOGBOX(0)
Called from: => TDIALOG:ACTIVATE(0)
Called from: C:ProyectosHarbourxPV2uentespv01.prg => PASSWORD(645)
Called from: C:ProyectosHarbourxPV2uentespv01.prg => (b)MAIN(229)
Called from: => TWINDOW:ACTIVATE(876)
Called from: C:ProyectosHarbourxPV2uentespv01.prg => MAIN(229)
MI CODIGO:
#define _DDE_CH
#define _VIDEO_CH
#define _TREE_CH
#define _ODBC_CH
#INCLUDE "FiveWin.ch"
#INCLUDE "Btnget.ch"
#INCLUDE "TsButton.ch"
#INCLUDE "Vbox.ch"
#INCLUDE "DtPicker.ch"
#INCLUDE "Splitter.ch"
#INCLUDE "dbcombo.ch"
MEMVAR oWnd, oVarSys, oVarUsu
FUNCTION PV2100(oItem,nBtn,oToolBar)
..............
DEFINE DIALOG oDlg NAME "PV2100" COLOR nRGB(0,64,128),nRGB(0,64,128)
.............
oDlg:bKeyDown := {|nK| if( ( nK == Asc( "A" ) .OR. nK == Asc( "a" ) ) .AND. GetKeyState( VK_CONTROL ), ;
( IF(lAuto[VAL(nCaja)],lAuto[VAL(nCaja)]:=.F.,lAuto[VAL(nCaja)]:=.T.),;
oMsgItem[4]:SetText("Venta Aut.: "+IF(lAuto[VAL(nCaja)],"S","N")),;
oMsgItem[4]:Refresh(), SndPlaySound("Click.Wav")), ), ;
if( ( nK == Asc( "T" ) .OR. nK == Asc( "t" ) ) .AND. GetKeyState( VK_CONTROL ), ;
( IF(lImpre[VAL(nCaja)],lImpre[VAL(nCaja)]:=.F.,lImpre[VAL(nCaja)]:=.T.),;
oMsgItem[8]:SetText("Imp.Ticket: "+IF(lImpre[VAL(nCaja)],"S","N")),;
oMsgItem[8]:Refresh(), SndPlaySound("Click.Wav")), ) }
*------
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT ( Inicia(), Msg_Barra(oDlg,oMsg,oMsgItem,oFnt), ;
SetWindowPos( oDlg:hWnd, -1,0,0,0,0,3 ) ) ;
VALID ( IF(lSalir .OR. lCorteCaja,.T.,(lSalir:=Checa(@oBTmp))),IF(lSalir .OR. lCorteCaja,.T.,lSalir) )
Gracias.
Paco