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 16-02-2011
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Servicios Windows y Thread con OCR

Mira, necesito hacer una mejoria en un software semana que viene y no lo se aun como hacer. Este es el cenario.
Hay que hacer vários scanner de vários documientos por dia(300 o mas), generando un archivo OCR. Esto ya se lo hace manualmente. Lo que deve ser hecho ahora es:
Crea un servicio Windows. Y quando este servicio for startado, deve se iniciar una Thread y dentro desa Thread comienzar los scanners de los documentos y la generacion de ellos. Y deve ser asi: Sy un documento for 90% o mas de calidad, este esta aprobado si no, es desechado(descartado, no se se es asi q escribe) y vulve a ser scaneado nuevamente. Todo debe ser automatico, sin la presencia de mano. Impiezó el Windows Service, si abre una Thread y si lo hace. Ellos quieren en una Thread, para que la aplicación no se queda paralisada mientras se va haciendo el scaneamiento de las imagens. Una Thread con prioridad baja.
No se como se hace estas cosas. Mi gustaria de una ayuda de los maestros deste forum. Gracias desde ahora!!
Responder Con Cita
  #2  
Antiguo 16-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Pues básicamente debes crearte una clase descendiente de la clase TThread y sobre-escribir(Override) el método Execute, inclusive Delphi te ayuda a crear dicha clase, pues tiene un asistente(Wizard) que te lo hace todo ; en Delphi 7 yo lo hago así:
Me voy al menú File>New>Other... En la ventanita que te parece, debes seleccionar dentro de la ficha(pestaña) "New" la opcion "Thread Object" pulsamos el boton "Ok" y nos va a salir otra ventanita donde debemos indicarle el nombre de nuestra clase(class Name); en mi caso yo le he puesto por nombre de clase "TMyHilo", vos si querés le puedes poner cualquier nombre, en la opcion que dice Thread name lo puedes dejar en blanco,luego presionamos el boton "OK" y Delphi creará una unidad nueva, la cual contendrá el esqueleto de una nueva clase descendiente de TThread, inclusive con el método Execute override, listo para empezar a programar...
Bueno aquí está como queda:
Código Delphi [-]
unit Unit2;

interface

uses
  Classes;

type
  TMyHilo = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

implementation

{ Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,

      Synchronize(UpdateCaption);

  and UpdateCaption could look like,

    procedure TMyHilo.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end; }

{ TMyHilo }

procedure TMyHilo.Execute;
begin
  { Place thread code here }
end;

end.
Para ponerle prioridad Baja al Hilo se utiliza la propiedad "Priority" por ejemplo voy a crear una Instancia de mi clase TMyHilo:
Código Delphi [-]
var
hilo: TMyHilo; { TMyHilo es un descendiente de TThread }
begin
  hilo := TMyHilo.Create(True); { crear suspendido - "hilo" no se ejecuta aún }
  hilo.Priority := tpLower; { establecer la prioridad a la baja de lo normal,
 si queremos más baja aún podemos asignarle "tpLowest",
para más informacion buscar "TThreadPriority type" en la Ayuda de Delphi  }
  hilo.Resume; { Ahora corre el hilo, eso quiere decir que el hilo ejecuta su método "Execute"}
end;
Espero haberte podido ayudar...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 16-02-2011
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Bueno, lo hizo asi y funciono. Y ahora como hago para startar un servicio Windows y el ya startar mi thread que hizo.
Responder Con Cita
  #4  
Antiguo 16-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Para crear un servicio debes crearte una "Aplicacion Servicio" es como crearte una nueva aplicacion, con la direfencia que ésta es de "Servicio",para lo cual te recomiendo guiarte con éste muy buen tutorial que te explica todo
Nota: Cabe destacar que es en una "aplicacion Servico" donde debes crearte tu clase Thread , para que lo puedas usar ahí mismo.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
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
Servicios de Windows erickahr Windows 1 31-05-2010 18:09:39
Servicios de Windows cacu OOP 2 21-11-2008 01:12:26
Servicios en Windows sancarlos API de Windows 10 06-11-2008 12:44:40
Servicios de Windows Eklypsex API de Windows 3 31-10-2008 19:30:13
Servicios de Windows jocey API de Windows 13 23-09-2008 13:06:01


La franja horaria es GMT +2. Ahora son las 09:52:47.


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