Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #2  
Antiguo 14-01-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
Oido cocina.... voy
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 14-01-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
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.
Responder Con Cita
  #4  
Antiguo 14-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #5  
Antiguo 14-01-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
newtron Va camino a la fama
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.
Responder Con Cita
  #6  
Antiguo 14-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
...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.
No sé si te entiendo pero no te comprendo, o es que te comprendo pero no te entiendo. Te explico como lo tengo hecho yo, puede que tú estés intentando conseguir algo distinto.

Yo tengo un formulario normal y corriente donde se escanea y se guarda lo escaneado (UFescanear). No hay ningún otro formulario en el programa donde se pueda escanear. Es en ese único formulario donde está el único componente twain.

Luego tengo un formulario (realmente es un frame) que se encarga de administrar las imágenes escaneadas, verlas, borrarlas, etc. (marcoDocumentosEscaner) En este formulario (frame) hay un botón "Escaner", que lo único que hace ese botón es abrir el formulario que indiqué antes (UFescanear), el que se dedica a escanear.

Cuando UFescanear ha terminado de escanear algo, lo cierro y vuelvo a estar en marcoDocumentosEscaner, refresco el dataset de documentos escaneados para que actualice el dbgrid y el usuario pueda pinchar en la fila donde ya aparece el nuevo documento escaneado. Donde además, como he dicho antes, también podrá verlo, ampliarlo, borrarlo, etc. Resumiendo, en marcoDocumentosEscaner se administra (ver, borrar, etc.) lo escaneado en UFescanear (que sólo escanea).

¿Por qué uso un marco en lugar de otro formulario 'normal'?, pues porque esa ventana (formulario) de administrar lo escaneado se muestra en diversas partes del programa, y entonces lo que hago es pegar/adjuntar/incrustar el marco en el formulario que lo necesito.

Y eso es todo, amigos
Y déjate de chapuzas de poner otro componente twain , seguro que lo que quieres hacer tiene solución 'lógica'
Responder Con Cita
  #7  
Antiguo 14-01-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por si aporto algo, yo tengo un formulario con 10 fichas en las que se pueden escanear un maximo de 10 historias por paciente y utilizo un único componente Twain y guardo las imágenes así:
(es un resumen).
Código Delphi [-]
procedure TfrClientes.TwainTwainAcquire(Sender: TObject;
  const Index: Integer; Image: TBitmap; var Cancel: Boolean);
begin
  Case nH of
  1bImage1.Picture.Assign(Image);
  2bImage2.Picture.Assign(Image);
  3bImage3.Picture.Assign(Image);
  4bImage4.Picture.Assign(Image);
  5bImage5.Picture.Assign(Image);
  end;

  Cancel := TRUE;  {Only want one image}
end;

procedure TfrClientes.SpeedButton1Click(Sender: TObject);
begin
nh:=1;
  {It is always recommended to load library dynamically, never forcing}
  {final user to have twain installed}
  if Twain.LoadLibrary then
  begin

    {Load source manager}
    Twain.SourceManagerLoaded := TRUE;
    {Allow user to select source}
    SelectedSource := Twain.SelectSource;
    if SelectedSource <> -1 then
    begin
      {Load source, select transference method and enable (display interface)}
      Twain.Source[SelectedSource].Loaded := TRUE;
      Twain.Source[SelectedSource].TransferMode := ttmMemory;
      Twain.Source[SelectedSource].Enabled := TRUE;
    end {if SelectedSource <> -1}

  end
  else
    showmessage('Twain is not installed.');
end;
.....
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 10:18:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi