problemas al Controlar el escaner via ActiveX ocx

Post Reply
jfafive
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

problemas al Controlar el escaner via ActiveX ocx

Post by jfafive »

Hola,

Estoy usando una librería trial ocx para crear un dialogo que me permita controlar el escaner independientemente al software que trae.

He probado la siguiente secuencia de comandos:

Code: Select all

function Main()

   local _

   _ := TOleAuto():New( "csXImageTrial.ImageBox" )

   _:WaitForAcquire    := .t.
   _:UseTwainInterface := .f. // Evitamos que llame al software del escaner.

   _:SelectTWainDevice() // Seleccionamos el escaner a utilizar

   MsgInfo( "Before" )
   _:Acquire()  // escaneamos
   MsgInfo( "After" )

return nil
Cuando ejecuto este código, funciona bien, es decir, muestra el mensaje 'Antes', lueso escanea y finalmente, muestra 'Después'

Lo curioso es que si ejecuto esta misma secuencia asignada a un ACTION de un botón en mi diálogo de recurso, se produce la siguiente ejecución:

Muestra 'Antes', escanea y luego no muestra el mensaje 'Después'. Pero mi aplicación no se bloquea. sigue funcionando y puedes pulsar otros botones y salir del dialogo.

Al principio pensé que se trataba de la librería en sí, pero probé con otra librería muy similar que tambien usa activex y los resultados fueron los mismos.

En fín, que parece que hay algo que le molesta cuando ejecuto desde diálogo y no sé que hacer.

:cry:
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Javier,

Mira a ver si te sirve la libreria que hizo Rafa (thefull):

www.fivetechsoft.com/files/utilities/tscan32.zip
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
RenOmaS
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Post by RenOmaS »

Experimenta utilizar lo siguiente:

Code: Select all

   Local oErr
...
   MsgInfo( "Before" )
   TRY
      _:Acquire()  // _ oErr
      MsgAlert( "Error: " + oErr:Operation + " -> " + oErr:Description )
   END
   MsgInfo( "After" ) 
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Javier:
Yo utilizo csxImage y va muy bien. El truco está en abrirlo como ActiveX. Más o menos así:

Code: Select all

oImgBox := TActiveX():New(Self, "csXImageTrial.ImageBox")

//--- Y a partir de ahora, utiliza Do(), SetProp() y GetProp().  Así:

oImgBox:Do("SelectTwainDevice")
oImgBox:SetProp("WaitForAcquire", .t. )
oImgBox:SetProp("UseTwainInterface", .F.) // Evitamos que llame al software del escaner. 
oImgBox:Do("Acquire")
etc etc...
Antonio me ayudó mucho porque TActiveX tenía unas incompatibilidades que al final pudimos resolver (bueno; casi todo lo hizo él). Esto fue a finales de mayo, así que para que te funcione necesitarás la versión FWH 8.07 o posterior

Por cierto, la gente de csxImage también colaboró mucho, incluyendo unas funciones para manejo de colores, ya que con los datos OLE_COLOR originales no hubo forma de que funcionase. Espero que esto ayude. Feliz Navidad!

Rafael
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Aclarar que las incompatibilidades que se resolvieron fueron con el manejo de eventos :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
jfafive
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Post by jfafive »

Antonio, TScan32 fué la primera opción que estudié. Pero se me queda corto para lo que necesito.

RenOamS, buen intento y gracias. Pero las pruebas no han funcionado.

Rafa, como bien dices, necesitaré la versión FWH 8.07.

En fin, gracias por vuestros consejos. Os deseo una feliz noche buena.
Y no os paseis con la cominda. :lol:
Post Reply