Form para exibir processo - Logs
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.
Grato e aguardo qualquer orientação.
M. C.
Curtidas 0
Respostas
Joel Rodrigues
02/05/2013
Dá um Show no Form_B e depois pode acessar ele normalmente pelo Form_A. Tipo:
Form_B.Memo1.Lines.Add('log');GOSTEI 0
M. C.
02/05/2013
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.
GOSTEI 0
Joel Rodrigues
02/05/2013
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.
GOSTEI 0
M. C.
02/05/2013
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!
GOSTEI 0
Joel Rodrigues
02/05/2013
Perfeito. Eu apenas tiraria as bordas do form, para dar um visual mais fixo, mas é só enfeite mesmo.
Que bom que deu certo.
Que bom que deu certo.
GOSTEI 0
M. C.
02/05/2013
Perfeito. Eu apenas tiraria as bordas do form, para dar um visual mais fixo, mas é só enfeite mesmo.
Que bom que deu certo.
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.
GOSTEI 0
Joel Rodrigues
02/05/2013
Boa pergunta. Acho que só se você desabilitar o memo e tirar o foco dele.
GOSTEI 0
M. C.
02/05/2013
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.
GOSTEI 0
Joel Rodrigues
02/05/2013
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.
GOSTEI 0
M. C.
02/05/2013
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!
GOSTEI 0
Joel Rodrigues
02/05/2013
Vê se consegue algo nessa página: [url]http://www.delphipages.com/forum/showthread.php?t=185269[/url]
GOSTEI 0
Leonardo Xavier
02/05/2013
Tem um componente da Raize que se chama RzProgressDisplay acho que este componente resolveria seu problema.
GOSTEI 0
M. C.
02/05/2013
Vê se consegue algo nessa página: [url]http://www.delphipages.com/forum/showthread.php?t=185269[/url]
Vou dar uma olhada.
Grato.
GOSTEI 0
M. C.
02/05/2013
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.
GOSTEI 0