![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Un TFrame es un formulario "especial", que permite ser incrustado en cualquier otro formulario. Si necesitas hacer algún cambio en el frame, esos cambios se "propagan" a todos los formularios que tengan incrustado ese frame, ya que realmente es el mismo para todos.
Su uso es simple, lo añades al proyecto normalmente: file->new->delphi files->frame. Luego, cuando quieres incrustarlo en un formulario: añades el componentes "frame" (está en la paleta "standar") y se abre una ventana de diálogo con todos los frames que tienes, seleccionas el que quieras y... listo, ya tienes el frame incrustado en el formulario. La ventaja principal es que si tienes que hacer cualquier cambio en el módulo de escaner (en este caso) sólo tendrás que hacerlo en un sitio y todos los demás formularios que lo tengan incrustado verán los cambios. Es como un formulario heredado, tan sólo que se "incrusta" en otro formulario.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
||||
|
||||
|
Vale, hasta ahí lo entiendo, pero.... supongamos que yo creo el frame que llama de forma automática al driver del escaner y captura la imagen, ¿cómo la uso desde el formulario que lo llama?
__________________
Be water my friend. |
|
#3
|
||||
|
||||
|
Pues anteponiendo el nombre del formulario frame, formularioframe.componentequesea.propiedadquequieras
Haz una prueba sencilla, crea un nuevo proyecto con un formulario y luego crea un frame. Seguidamente vuelve al formulario y le añades el componente frame (paleta 'standar'), verás que sencillo.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
||||
|
||||
|
Oido cocina.... voy
__________________
Be water my friend. |
|
#5
|
||||
|
||||
|
Vale. Ya tengo un formulario con un frame incrustado en el que dandole a un botón llama al driver del escaner y escanea la imagen. El problema está en ¿cómo se entera el formulario original de que el escaner ha capturado la imagen para poder trabajar con ella? porque en el formulario principal cuando se pica el botón no se espera a que el driver se cierre y ahí no puede ser porque continua con la ejecución del código y en ese momento no hay imagen hasta que no salte el evento OnAdquire.
Edito: ¿O hay alguna forma de parar el código del formulario principal en espera de que se cierre el driver de la impresora?, es decir, como si fuera llamar al TFrame en modo Modal.
__________________
Be water my friend. Última edición por newtron fecha: 14-01-2012 a las 18:59:47. |
|
#6
|
||||
|
||||
|
Creo que me he perdido, a ver, me explico: tengo un formulario donde se escanea y se guarda lo escaneado en la base de datos (o en un fichero externo, a elegir). Todo lo que concierne al escaner se hace ahí. Es en ese formulario donde está el componente twain, donde se escanea.
Si lo llamo desde otro formulario, lo que hago es llamar a ese otro formulario donde se trabaja con el escaner. ¿Cómo se entera el formulario de que el otro ha terminado de escanear?, pues porque lo has abierto con un showmodal y ya ha terminado, se ha cerrado y ha vuelto el control al formulario que llamó al del escaner.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
||||
|
||||
|
Fracaso absoluto
A ver.
He creado el TFrame con el componente DelphiTwain y lo he incrustado dentro del formulario principal, me he percatado de que los eventos asociados al componente se pueden declarar en cada uno de los formularios y es lo que he hecho. El TFrame lo único que tiene es un botón que llama al driver del escaner. Todo funciona perfectamente pero cuando he hecho la misma operación en el formulario al que llama posteriormente me pasa lo mismo, una vez que selecciona el escaner de la lista de dispositivos se sale sin hacer nada. Si llamo al escaner desde uno o desde otro funciona correctamente pero si escaneo en el primer formulario, llamo al segundo formulario y vuelvo a llamar al escaner ya no va. Edito: como plan B se me ha ocurrido instalar otro componente twain para el otro formulario, ¿conoces algún otro?
__________________
Be water my friend. Última edición por newtron fecha: 14-01-2012 a las 19:58:26. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Instalar DelphiTwain en D7 | marcoszorrilla | Varios | 6 | 26-12-2011 23:06:59 |
| DelphiTWAIN y Bitmap:S | mrnovice | Gráficos | 13 | 03-10-2008 23:43:10 |
| DelphiTwain y SetImageLayoutFrame() | mrnovice | OOP | 1 | 07-08-2008 14:36:09 |
| DelphiTwain: Accesar propiedades de Scanner | Roberto Angulo | Gráficos | 5 | 31-07-2008 21:38:17 |
| Cancelar con DelphiTwain | mrnovice | OOP | 3 | 07-07-2008 18:34:51 |
|