Fórum Form para exibir processo - Logs #441645

02/05/2013

0

Gostaria da orientação dos colegas para fazer o seguinte: Tenho um "Form_A" aonde o mesmo realiza um processo relativamente demorado. Quero que durante o processo um "Form_B" seja exibido sobre o "Form_A" para exibir os logs do processo. O "Form_B" é bem simples nada demais não, o mesmo só possui um TMemo e um TButton. Como faço isso? Jogar para o "Form_B" o que está sendo realiado no processo do "Form_B". Eu já fiz isso no passado, mas procurei pela rotinha e não encontrei. Dica, exemplos ou até tutoriais me ajudariam muito.

Grato e aguardo qualquer orientação.

M. C.

M. C.

Responder

Posts

02/05/2013

Joel Rodrigues

Dá um Show no Form_B e depois pode acessar ele normalmente pelo Form_A. Tipo:
Form_B.Memo1.Lines.Add('log');
Responder

Gostei + 0

02/05/2013

M. C.

Dá um Show no Form_B e depois pode acessar ele normalmente pelo Form_A. Tipo:
Form_B.Memo1.Lines.Add('log');


Eu acho que o colega não entendeu direito ou eu quem devo não ter explicado direito.

O log será "escrito" e "exibido" em tempo real, ou seja, a cada ação executada no processo o mesmo "escreve" no log (memo) para que o usuário acompanhe o que está sendo feito.

Grato pela sua atenção.
Responder

Gostei + 0

02/05/2013

Joel Rodrigues



Eu acho que o colega não entendeu direito ou eu quem devo não ter explicado direito.

O log será "escrito" e "exibido" em tempo real, ou seja, a cada ação executada no processo o mesmo "escreve" no log (memo) para que o usuário acompanhe o que está sendo feito.

Grato pela sua atenção.

Pelo que entendi, o form_b vai estar aberto na frente do form_a, que vai estar executando um determinado procedimento, certo?
Então, não vejo problema em o form_a acessar diretamente o form_b, da forma como eu citei, durante esse procedimento. Obviamente isso só funcionará se o form_b já estiver devidamente criado e exibido.
Eu mesmo fiz um teste aqui com um timer em um form, escrevendo periodicamente no outro, que estava aberto sobre ele.
Responder

Gostei + 0

02/05/2013

M. C.



Eu acho que o colega não entendeu direito ou eu quem devo não ter explicado direito.

O log será "escrito" e "exibido" em tempo real, ou seja, a cada ação executada no processo o mesmo "escreve" no log (memo) para que o usuário acompanhe o que está sendo feito.

Grato pela sua atenção.

Pelo que entendi, o form_b vai estar aberto na frente do form_a, que vai estar executando um determinado procedimento, certo?
Então, não vejo problema em o form_a acessar diretamente o form_b, da forma como eu citei, durante esse procedimento. Obviamente isso só funcionará se o form_b já estiver devidamente criado e exibido.
Eu mesmo fiz um teste aqui com um timer em um form, escrevendo periodicamente no outro, que estava aberto sobre ele.


Olá,

Me desculpe, pois vejo que você entendeu mesmo. É exatamente isso que eu necessito.

Para o momento, segui o seu raciocínio e fiz a coisa funcionar aqui. Criei um "FormLogs" em runtime e em cada ponto relevante do processo mandei a informação para o "memo" e seguida um "FormLogs.Update". Aparentemente a coisa ficou funcionando legal, apenas o mesmo fica "solto", ou seja, se o usuário clicar em outra coisa o "FormLogs" sumia de cena... Daí coloque o "FormStyle" do mesmo como "fsStayOnTop" e melhorou bastante. Seria assim mesmo? Gostaria de acrescentar algum comentário?

Grato pela sua valiosa atenção.

Forte abraço!
Responder

Gostei + 0

02/05/2013

Joel Rodrigues

Perfeito. Eu apenas tiraria as bordas do form, para dar um visual mais fixo, mas é só enfeite mesmo.
Que bom que deu certo.
Responder

Gostei + 0

03/05/2013

M. C.

Perfeito. Eu apenas tiraria as bordas do form, para dar um visual mais fixo, mas é só enfeite mesmo.
Que bom que deu certo.


Beleza. Vou ver como é que fica com o "enfeite", se ficar legal eu deixo.

Outra coisa:
Tem como inibir o prompt/cursor de edição do memo? Só isso que está me desagradando.
Responder

Gostei + 0

03/05/2013

Joel Rodrigues

Boa pergunta. Acho que só se você desabilitar o memo e tirar o foco dele.
Responder

Gostei + 0

03/05/2013

M. C.

Boa pergunta. Acho que só se você desabilitar o memo e tirar o foco dele.


Penso que isso não dará certo, pois como o "Logs" é longo, relata todo um processo meio demorado, o usuário não terá como rolar a tela para ler os registros no "Logs". Me corrija se eu estiver errado.
Responder

Gostei + 0

03/05/2013

Joel Rodrigues

Bem lembrado, mas se não me engano, há um jeito de "rolar" o memo automaticamente. Isso é muito usado em telas de venda, onde se usa o memo para exibir o cupom.
Responder

Gostei + 0

03/05/2013

M. C.

Bem lembrado, mas se não me engano, há um jeito de "rolar" o memo automaticamente. Isso é muito usado em telas de venda, onde se usa o memo para exibir o cupom.


Pois é, mas como se faz?

Tentei aqui, mas sem sucesso!
Responder

Gostei + 0

03/05/2013

Joel Rodrigues

Vê se consegue algo nessa página: [url]http://www.delphipages.com/forum/showthread.php?t=185269[/url]
Responder

Gostei + 0

03/05/2013

Leonardo Xavier

Tem um componente da Raize que se chama RzProgressDisplay acho que este componente resolveria seu problema.
Responder

Gostei + 0

03/05/2013

M. C.

Vê se consegue algo nessa página: [url]http://www.delphipages.com/forum/showthread.php?t=185269[/url]


Vou dar uma olhada.

Grato.
Responder

Gostei + 0

03/05/2013

M. C.

Tem um componente da Raize que se chama RzProgressDisplay acho que este componente resolveria seu problema.


Não conheço esse componente não.

Vou dar uma olhada.

Grato.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar