Saltos de focos entre dos dialogos modales con dos monitores

Saltos de focos entre dos dialogos modales con dos monitores

Postby carlos vargas » Fri Sep 13, 2013 5:42 pm

Antonio
Me ha sucedió algo curioso hoy, ya que estoy mostrando a un cliente un programa que estoy desarrollando y en un modulo especifico en el cual hace un recorrido en una tabla y muestra en un dialogo modal un campo especifico de la tabla (mas que todo para que el usuario no desespere).
sucede que el foco del dialogo modal empieza a cambiar entre el dialogo padre y el hijo, alternándose continuamente.

ademas ocurre como que la posición de dialogo hijo se desplazara hacia abajo y luego retorna a su posición original
esto se mira refeo.

esto no sucede en ninguna de mis pc, la única variante entre mis pc y la que presento el incidente es que esta usa dos monitores.
es mas para salir de duda, apago el monitor secundario, reinicie la pc, ejecuto mi programa y no sucede.

enciendo el monitor secundario, reinicio la pc y ejecuto el programa y regresa el efecto.

en otras palabras esto solo sucede con pc con dos monitores.
adjunto el código, en el procedimiento "Sincronizar_EnviarDatos()" proceso 14 tablas, y solamente en tres de ellas muestro info segun recorro los registros de la tablas
DOCUMENTOS; CONCESIONESDOC y MAPAS (esto por que toma bastante tiempo ya que don documentos pdf escaneados)
solamente en estos tres pedazos de codigo ocurre los saltos.
lo único diferente con las restantes tablas es que uso un esto

Code: Select all  Expand view

      DO WHILE !MAPA->( Eof() )
         oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" + FINL + AllTrim( MAPA->NOMBRE ) ) //esta linea
 


Code: Select all  Expand view

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Sincronizar()
   PRIVATE oDlgS, oBtn1, oBtn2, oBtn3, oSayI
   PRIVATE oServer

   oServer := TMyServer():New()

   DEFINE DIALOG oDlgS NAME "DLG_SINCRONIZAR" OF oMainD ICON GetIcon() FONT oFontD

   REDEFINE BTNBMP oBtn1 ;
      ID 101 OF oDlgS ;
      NAME "BM_SINCRO" ;
      ACTION Sincronizar_Menu() ;
      2007

   REDEFINE BTNBMP oBtn2 ;
      ID 102 OF oDlgS ;
      NAME "BM_CONFIG" ;
      ACTION Sincronizar_Configuracion() ;
      2007

   REDEFINE SAY oSayI ;
      PROMPT TC( IDS_SELECT ) ;
      ID 103 OF oDlgS ;
      COLOR CLR_YELLOW, CLR_BLUE

   REDEFINE BUTTON oBtn3 ;
      ID 201 OF oDlgS ;
      ACTION oDlgS:END()

   ACTIVATE DIALOG oDlgS VALID ( oServer:CloseFile(), TRUE )

RETURN

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Sincronizar_Menu()
   LOCAL oMenu

   aRect := GetClientRect( oBtn1:hWnd )

   MENU oMenu POPUP 2007
      MENUITEM TC( IDS_SYNC_MENU_1 ) ACTION Sincronizar_Estacion()
      MENUITEM TC( IDS_SYNC_MENU_2 ) ACTION Sincronizar_Servidor() WHEN lAdmin
   ENDMENU

   ACTIVATE POPUP oMenu At aRect[ 3 ] + 1, aRect[ 2 ] OF oBtn1

RETURN

/*-------------------------------------------------------------------------------------------------*/

FUNCTION Sincronizar_Servidor()
   PRIVATE oConexion, cConexion

   oServer:LoadFromFile()

   IF !oServer:ValidInfo()
      MsgAlert( TC( IDS_SYNC_VALIDATE_CONFIGURATION_FAIL ) )
      RETURN
   ENDIF

   AEval( { oBtn1, oBtn2, oBtn3 }, {|o| o:Disable() } )

   cConexion := oServer:GetStringConnection()

   MsgRun( TC( IDS_SYNC_CONNECTING ), "MYEMPRESA"      , ;
           {|| CursorWait()                         , ;
               oConexion := AdoConexion( cConexion ), ;
               CursorArrow()                        , ;
               SysRefresh()                         } )

   DO CASE
   CASE HB_IsNil( oConexion )
      MsgAlert( TC( IDS_SYNC_CONNECTING_ERROR ) )
   CASE HB_IsObject( oConexion )
      IF Sincronizar_ValidarTablas()
         Sincronizar_EnviarDatos()
      ENDIF
      oConexion:Close()
   ENDCASE

   AEval( { oBtn1, oBtn2, oBtn3 }, {|o| o:Enable() } )

RETURN

/*-------------------------------------------------------------------------------------------------*/

PROCEDURE Sincronizar_EnviarDatos()
   LOCAL lOk
   LOCAL oRS
   LOCAL cTime
   LOCAL oError, cText

   IF !( oConexion:State = adStateOpen )
      RETURN FALSE
   ENDIF

   lOk := TRUE

   TRY
      WITH OBJECT ( oRS := TOleAuto():New( "ADODB.RecordSet" ) )
         :CursorLocation   := adUseServer
         :CursorType       := adOpenDynamic
         :LockType         := adLockOptimistic
         :ActiveConnection := oConexion
      END
   CATCH oError
      lOk := FALSE
      ShowAdoError( oConexion, oError )
   END

   IF !lOk
      RETURN lOk
   ENDIF

   cTime := Time()

   TRY
      oConexion:BeginTrans()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 1,"Enviando tabla: COMARCAS"
      #endif
      oRS:open( "SELECT * FROM COMARCAS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[COMARCAS]" )
      CursorWait()
      SELECT "COMA"
      COMA->( DBGoTop() )
      DO WHILE !COMA->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_DEPA" ):Value := COMA->NUM_DEPA
         oRS:Fields( "NUM_MUNI" ):Value := COMA->NUM_MUNI
         oRS:Fields( "NUM_COMA" ):Value := COMA->NUM_COMA
         oRS:Fields( "NOM_COMA" ):Value := COMA->NOM_COMA
         oRS:Update()
         COMA->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 2, "Enviando tabla: CONCESIONES"
      #endif
      oRS:open( "SELECT * FROM CONCESIONES WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONCESIONES]" )
      CursorWait()
      SELECT "CONC"
      CONC->( DBGoTop() )
      DO WHILE !CONC->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_EMPR"   ):Value := CONC->NUM_EMPR
         oRS:Fields( "NUM_CONC"   ):Value := CONC->NUM_CONC
         oRS:Fields( "NOM_CONC"   ):Value := CONC->NOM_CONC
         oRS:Fields( "ACUERDO"    ):Value := CONC->ACUERDO
         oRS:Fields( "NUM_DEPA"   ):Value := CONC->NUM_DEPA
         oRS:Fields( "NUM_MUNI1"  ):Value := CONC->NUM_MUNI1
         oRS:Fields( "NUM_MUNI2"  ):Value := CONC->NUM_MUNI2
         oRS:Fields( "NUM_MUNI3"  ):Value := CONC->NUM_MUNI3
         oRS:Fields( "AREA"       ):Value := CONC->AREA
         oRS:Fields( "FECHA_SOL"  ):Value := DateToSQL( CONC->FECHA_SOL )
         oRS:Fields( "FECHA_VEN"  ):Value := DateToSQL( CONC->FECHA_VEN )
         oRS:Fields( "ULTIMO_AER" ):Value := CONC->ULTIMO_AER
         oRS:Fields( "NOTA"       ):Value := CONC->NOTA
         oRS:Update()
         CONC->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 3, "Enviando tabla: CONCESIONESDOC"
      #endif
      oRS:open( "SELECT * FROM CONCESIONESDOC WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONCESIONES DOC]" )
      CursorWait()
      SELECT "COND"
      COND->( DBGoTop() )
      DO WHILE !COND->( Eof() )
         oRS:AddNew()
         oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONCESIONES DOC]" + FINL + AllTrim( COND->NOMBRE ) )
         oRS:Fields( "NUM_CONC"    ):Value := COND->NUM_CONC
         oRS:Fields( "NOMBRE"      ):Value := COND->NOMBRE
         oRS:Fields( "DESCRIPCION" ):Value := COND->DESCRIPCION
         oRS:Fields( "DOCUMENTO"   ):Value := HB_UUEncode( COND->DOCUMENTO, Len( COND->DOCUMENTO ) )
         oRS:Update()
         SysRefresh()
         CursorWait()
         COND->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 4, "Enviando tabla: CONTROL"
      #endif
      oRS:open( "SELECT * FROM CONTROL WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[CONTROL]" )
      CursorWait()
      SELECT "CTRL"
      CTRL->( DBGoTop() )
      DO WHILE !CTRL->( Eof() )
         oRS:AddNew()
         oRS:Fields( "CONT_TIPO"  ):Value := CTRL->CONT_TIPO
         oRS:Fields( "CONT_INSC"  ):Value := CTRL->CONT_INSC
         oRS:Fields( "CONT_USUA"  ):Value := CTRL->CONT_USUA
         oRS:Fields( "CONT_PROP"  ):Value := CTRL->CONT_PROP
         oRS:Fields( "CONT_FINC"  ):Value := CTRL->CONT_FINC
         oRS:Fields( "CONT_EMPR"  ):Value := CTRL->CONT_EMPR
         oRS:Fields( "CONT_DEPA"  ):Value := CTRL->CONT_DEPA
         oRS:Fields( "CONT_MUNI"  ):Value := CTRL->CONT_MUNI
         oRS:Fields( "CONT_COMA"  ):Value := CTRL->CONT_COMA
         oRS:Fields( "CONT_CONC"  ):Value := CTRL->CONT_CONC
         oRS:Fields( "CONT_ROWF"  ):Value := CTRL->CONT_ROWF
         oRS:Update()
         CTRL->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 5, "Enviando tabla: DEPARTAMENTOS"
      #endif
      oRS:open( "SELECT * FROM DEPARTAMENTOS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[DEPARTAMENTOS]" )
      CursorWait()
      SELECT "DEPA"
      DEPA->( DBGoTop() )
      DO WHILE !DEPA->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_DEPA"  ):Value := DEPA->NUM_DEPA
         oRS:Fields( "NOM_DEPA"  ):Value := DEPA->NOM_DEPA
         oRS:Update()
         DEPA->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 6, "Enviando tabla: DOCUMENTOS"
      #endif
      oRS:open( "SELECT * FROM DOCUMENTOS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[DOCUMENTOS]"  )
      CursorWait()
      SELECT "DOCU"
      DOCU->( DBGoTop() )
      DO WHILE !DOCU->( Eof() )
         oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[DOCUMENTOS: " + Transform( DOCU->( RecNo() ), "@R 99999" ) + "]" + FINL + AllTrim( DOCU->NOMBRE ) )
         cText := HB_UUEncode( DOCU->DOCUMENTO, Len( DOCU->DOCUMENTO ) )
         oRS:AddNew()
         oRS:Fields( "NUM_ROWF"    ):Value := DOCU->NUM_ROWF
         oRS:Fields( "NUM_FINCA"   ):Value := DOCU->NUM_FINCA
         oRS:Fields( "TIPO"        ):Value := DOCU->TIPO
         oRS:Fields( "NOMBRE"      ):Value := DOCU->NOMBRE
         oRS:Fields( "DESCRIPCION" ):Value := DOCU->DESCRIPCION
         oRS:Fields( "DOCUMENTO"   ):Value := IIf( Len( cText )<50, "", cText )
         oRS:Update()
         SysRefresh()
         CursorWait()
         DOCU->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 7, "Enviando tabla: EMPRESAS"
      #endif
      oRS:open( "SELECT * FROM EMPRESAS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[EMPRESAS]" )
      CursorWait()
      SELECT "EMPR"
      EMPR->( DBGoTop() )
      DO WHILE !EMPR->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_EMPR" ):Value := EMPR->NUM_EMPR
         oRS:Fields( "NOM_EMPR" ):Value := EMPR->NOM_EMPR
         oRS:Fields( "DIR_EMPR" ):Value := EMPR->DIR_EMPR
         oRS:Fields( "TEL_EMPR" ):Value := EMPR->TEL_EMPR
         oRS:Fields( "REP_EMPR" ):Value := EMPR->REP_EMPR
         oRS:Fields( "RUC_EMPR" ):Value := EMPR->RUC_EMPR
         oRS:Update()
         EMPR->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 8, "Enviando tabla: MAPAS"
      #endif
      oRS:open( "SELECT * FROM MAPAS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" )
      CursorWait()
      SELECT "MAPA"
      MAPA->( DBGoTop() )
      DO WHILE !MAPA->( Eof() )
         oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" + FINL + AllTrim( MAPA->NOMBRE ) )
         oRS:AddNew()
         oRS:Fields( "NUM_EMPR"    ):Value := MAPA->NUM_EMPR
         oRS:Fields( "NOMBRE"      ):Value := MAPA->NOMBRE
         oRS:Fields( "DESCRIPCION" ):Value := MAPA->DESCRIPCION
         oRS:Fields( "DOCUMENTO"   ):Value := HB_UUEncode( MAPA->DOCUMENTO, Len( MAPA->DOCUMENTO ) )
         oRS:Update()
         SysRefresh()
         CursorWait()
         MAPA->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 9, "Enviando tabla: MUNICIPIOS"
      #endif
      oRS:open( "SELECT * FROM MUNICIPIOS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MUNICIPIOS]" )
      CursorWait()
      SELECT "MUNI"
      MUNI->( DBGoTop() )
      DO WHILE !MUNI->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_DEPA" ):Value := MUNI->NUM_DEPA
         oRS:Fields( "NUM_MUNI" ):Value := MUNI->NUM_MUNI
         oRS:Fields( "NOM_MUNI" ):Value := MUNI->NOM_MUNI
         oRS:Update()
         MUNI->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 10, "Enviando tabla: FINCAS"
      #endif
      oRS:open( "SELECT * FROM FINCAS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[FINCAS]" )
      CursorWait()
      SELECT "FINC"
      FINC->( DBGoTop() )
      DO WHILE !FINC->( Eof() )
         #IFDEF __VIEW_DEBUG__
         ???FINC->NUM_ROWF
         #ENDIF
         oRS:AddNew()
         oRS:Fields( "NUM_FINCA"   ):Value := FINC->NUM_FINCA
         oRS:Fields( "NUM_ROWF"    ):Value := FINC->NUM_ROWF
         oRS:Fields( "NUM_FINCA"   ):Value := FINC->NUM_FINCA
         oRS:Fields( "ESC_ANTER"   ):Value := FINC->ESC_ANTER
         oRS:Fields( "ESC_ANTEC"   ):Value := FINC->ESC_ANTEC
         oRS:Fields( "ESC_ACTUA"   ):Value := FINC->ESC_ACTUA
         oRS:Fields( "TOM_ANTER"   ):Value := FINC->TOM_ANTER
         oRS:Fields( "TOM_ANTEC"   ):Value := FINC->TOM_ANTEC
         oRS:Fields( "TOM_ACTUA"   ):Value := FINC->TOM_ACTUA
         oRS:Fields( "FOL_ANTER"   ):Value := FINC->FOL_ANTER
         oRS:Fields( "FOL_ANTEC"   ):Value := FINC->FOL_ANTEC
         oRS:Fields( "FOL_ACTUA"   ):Value := FINC->FOL_ACTUA
         oRS:Fields( "ASI_ANTER"   ):Value := FINC->ASI_ANTER
         oRS:Fields( "ASI_ANTEC"   ):Value := FINC->ASI_ANTEC
         oRS:Fields( "ASI_ACTUA"   ):Value := FINC->ASI_ACTUA
         oRS:Fields( "AREA_ESCALA" ):Value := FINC->AREA_ESCALA
         oRS:Fields( "AREA_FISICA" ):Value := FINC->AREA_FISICA
         oRS:Fields( "AREA_DELTA"  ):Value := FINC->AREA_DELTA
         oRS:Fields( "TIPO_ESC"    ):Value := FINC->TIPO_ESC
         oRS:Fields( "TIPO_INS"    ):Value := FINC->TIPO_INS
         oRS:Fields( "GRAVAMEN"    ):Value := IIf( FINC->GRAVAMEN, 1, 0 )
         oRS:Fields( "NOTA_GRAV"   ):Value := FINC->NOTA_GRAV
         oRS:Fields( "NUM_PROP"    ):Value := FINC->NUM_PROP
         oRS:Fields( "PROP_ANTE"   ):Value := FINC->PROP_ANTE
         oRS:Fields( "UBICACION"   ):Value := FINC->UBICACION
         oRS:Fields( "LINDERO_N"   ):Value := FINC->LINDERO_N
         oRS:Fields( "LINDERO_S"   ):Value := FINC->LINDERO_S
         oRS:Fields( "LINDERO_E"   ):Value := FINC->LINDERO_E
         oRS:Fields( "LINDERO_O"   ):Value := FINC->LINDERO_O
         oRS:Fields( "NUM_DEPA"    ):Value := FINC->NUM_DEPA
         oRS:Fields( "NUM_MUNI"    ):Value := FINC->NUM_MUNI
         oRS:Fields( "NUM_COMA"    ):Value := FINC->NUM_COMA
         oRS:Fields( "FECHA_ADQ"   ):Value := DateToSQL( FINC->FECHA_ADQ )
         oRS:Fields( "FECHA_INS"   ):Value := DateToSQL( FINC->FECHA_INS )
         oRS:Fields( "NUM_EMPR"    ):Value := FINC->NUM_EMPR
         oRS:Fields( "NUM_LOTE"    ):Value := FINC->NUM_LOTE
         oRS:Fields( "NUM_CATA"    ):Value := FINC->NUM_CATA
         oRS:Fields( "TIPOPROP"    ):Value := FINC->TIPOPROP
         oRS:Fields( "NOTA"        ):Value := FINC->NOTA
         oRS:Update()
         FINC->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 11, "Enviando tabla: PROPIETARIOS"
      #endif
      oRS:open( "SELECT * FROM PROPIETARIOS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[PROPIETARIOS]" )
      CursorWait()
      SELECT "PROP"
      PROP->( DBGoTop() )
      DO WHILE !PROP->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_PROP"     ):Value := PROP->NUM_PROP
         oRS:Fields( "NOMBRE"       ):Value := PROP->NOMBRE
         oRS:Fields( "CEDULA"       ):Value := PROP->CEDULA
         oRS:Fields( "DOMICILIO"    ):Value := PROP->DOMICILIO
         oRS:Fields( "TELEFONO1"    ):Value := PROP->TELEFONO1
         oRS:Fields( "TELEFONO2"    ):Value := PROP->TELEFONO2
         oRS:Fields( "FECHA_NAC"    ):Value := DateToSQL( PROP->FECHA_NAC )
         oRS:Fields( "_"         ):Value := PROP->_
         oRS:Fields( "NACIONALIDAD" ):Value := PROP->NACIONALIDAD
         oRS:Fields( "TIPO"         ):Value := PROP->TIPO
         oRS:Fields( "NOTA"         ):Value := PROP->NOTA
         oRS:Update()
         PROP->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 12, "Enviando tabla: TIPOS_ESCRITURAS"
      #endif
      oRS:open( "SELECT * FROM TIPOS_ESCRITURAS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[TIPOS DE ESCRITURAS]" )
      CursorWait()
      SELECT "TIPO"
      TIPO->( DBGoTop() )
      DO WHILE !TIPO->( Eof() )
         oRS:AddNew()
         oRS:Fields( "TIPO_ESC"    ):Value := TIPO->TIPO_ESC
         oRS:Fields( "DESCRIPCION" ):Value := TIPO->DESCRIPCION
         oRS:Fields( "NOTA"        ):Value := TIPO->NOTA
         oRS:Update()
         TIPO->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 13, "Enviando tabla: TIPOS_INSCRIPCIONES"
      #endif
      oRS:open( "SELECT * FROM TIPOS_INSCRIPCIONES WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[TIPOS DE ESCRITURAS]" )
      CursorWait()
      SELECT "INSC"
      INSC->( DBGoTop() )
      DO WHILE !INSC->( Eof() )
         oRS:AddNew()
         oRS:Fields( "TIPO_INS"    ):Value := INSC->TIPO_INS
         oRS:Fields( "DESCRIPCION" ):Value := INSC->DESCRIPCION
         oRS:Fields( "NOTA"        ):Value := INSC->NOTA
         oRS:Update()
         INSC->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/
      #IFDEF __VIEW_DEBUG__
      ??? 14, "Enviando tabla: USUARIOS"
      #endif
      oRS:open( "SELECT * FROM USUARIOS WHERE 1=2" )
      oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[USUARIOS]" )
      CursorWait()
      SELECT "USUA"
      USUA->( DBGoTop() )
      DO WHILE !USUA->( Eof() )
         oRS:AddNew()
         oRS:Fields( "NUM_USUA"   ):Value := USUA->NUM_USUA
         oRS:Fields( "NUM_EMPR"   ):Value := USUA->NUM_EMPR
         oRS:Fields( "NOMBRE"     ):Value := USUA->NOMBRE
         oRS:Fields( "APODO"      ):Value := USUA->APODO
         oRS:Fields( "CONTRASENA" ):Value := USUA->CONTRASENA
         oRS:Fields( "TIPO"       ):Value := USUA->TIPO
         oRS:Fields( "BLOQUEADO"  ):Value := IIf( USUA->BLOQUEADO, 1, 0 )
         oRS:Fields( "NOTA"       ):Value := USUA->NOTA
         oRS:Update()
         USUA->( DBSkip() )
      ENDDO
      SysRefresh()
      oRS:Close()

      /*=======================================*/

      oConexion:CommitTrans()

   CATCH oError
      lOk := FALSE
      oConexion:RollBackTrans()
      ShowAdoError( oConexion, oError )
   END

   CursorArrow()
   MsgBeep()

   IF lOk
      oSayI:SetText( TC( IDS_SYNC_UPDATING_REMOTE_OK   ) )
   ELSE
      oSayI:SetText( TC( IDS_SYNC_UPDATING_REMOTE_FAIL ) )
   ENDIF

   LimpiarAreas()

   MsgInfo( TC( IDS_SYNC_TIME_USED ) + ElapTime( cTime, Time() ) )

RETURN lOk

 

salu2
carlos
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Saltos de focos entre dos dialogos modales con dos monitores

Postby Antonio Linares » Fri Sep 13, 2013 5:58 pm

Carlos,

Este texto:

oSayI:SetText( TC( IDS_SYNC_UPDATING_TABLES ) + "[MAPAS]" + FINL + AllTrim( MAPA->NOMBRE ) )

cabe en el diálogo ?

Lo primero que se me ocurre es que al usar dos monitores alguna medida de ancho de la pantalla devuelva un valor erróneo.

Si comentas esa línea, ya no se produce ningun efecto ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Saltos de focos entre dos dialogos modales con dos monitores

Postby Antonio Linares » Fri Sep 13, 2013 6:04 pm

Carlos,

En el Método SetText() de la Clase TSay se hacen algunas cosas más además de cambiar el texto. Por favor prueba lo siguiente:

1. Elimina el método SetText() de la Clase TSay y comprueba si desaparece el efecto, gracias

2. Candidatos a lo que ocurre pudieran ser las llamadas: DrawPBack() y/o GetTextWidth()

Prueba a eliminar cada una de esas por separado, gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Saltos de focos entre dos dialogos modales con dos monitores

Postby carlos vargas » Fri Sep 13, 2013 6:55 pm

El say es un recuadro en el cual caben 4 lineas, el texto es desplegado bien.

realizare las pruebas cuando llege a casa, y te comentare los resultados.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Saltos de focos entre dos dialogos modales con dos monitores

Postby carlos vargas » Fri Sep 13, 2013 6:57 pm

tratare de hacer un video, creo que usando la laptop y un monitor adicional duplicare el entorno.
antes y despues de los cambios.


salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Saltos de focos entre dos dialogos modales con dos monitores

Postby Antonio Linares » Sat Sep 14, 2013 12:17 pm

Carlos,

gracias por hacer las pruebas :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 90 guests