Bom dia pessoal

Estou tentando criar um serviço através do delphi. Estou seguindo o esquema
de alguns tutoriais, mas todos são básicos e não criam serviços com forms
visíveis.

O problema que estou tendo é assim:

   - a aplicação é um gerenciador de backup para bancos firebird, com
   agendador entre outras tarefas.
   - na aplicação existe um form principal que contêm todas as atividades
   do programa.
   - eu criei um serviço e configurei nas propriedades dele para ter
   interactive para true.
   - e no método execute dele, eu crio o form através de uma thread pois
   quando colocava somente no método execute do serviço, a aplicação não
   conseguia receber respostas do teclado.
   - só que o form que é aberto no thread não está funcionando.. não abre
   direito...

*abaixo está o código do execute do serviço e da thread.Código do serviço:*

procedure TsrvAdmin.ServiceExecute(Sender : TService);
begin
  trdPrincipal := trdPrincipal.Create;
  while not Terminated do
    ServiceThread.ProcessRequests(True);
  trdPrincipal.Terminate;
end;

Código da thread:

procedure TPrincipalThread.Execute;
begin
  repeat
    if not Assigned(frmPrincipal) and processExists('explorer.exe') then
      begin
        frmPrincipal := TfrmPrincipal.Create(srvAndesAdmin);
        frmPrincipal.Show;
      end;
    Forms.Application.ProcessMessages;
    Sleep(1);
  until Terminated;
end;

o código do serviço é um que eu peguei nos tutoriais mais a execução da
thread.

o problema todo está em que tem hora que não consigo abrir o form.

alguém já conseguiu fazer um serviço desse jeito?

desde já agradeço


-- 
Thales Eduardo Barros de Oliveira
Desenvolvedor Delphi / Firebird
Emails:
[EMAIL PROTECTED] (GoogleTalk)
[EMAIL PROTECTED] (MSN)
Blog:
http://tebosoftware.blogspot.com/

"Tente ser uma pessoa de valor, não de sucesso"
Albert Einstein


[As partes desta mensagem que não continham texto foram removidas]

Responder a