Como executar somente uma tarefa em um programa ?
Como executar somente uma tarefa em um programa
Exemplo:
Eu tenho uma "Tarefa" (um procedimento) que pode ser executado e demorar minutos para acabar MAS eu tenho um timer que executa esta "tarefa" (a mesma tarefa) de um em um minuto (só ai já dá para ver qual será o problema) e se ACONTECER de as duas chamada a "TAREFA" coincidir uma com a outra eu executar e depois o timer executar
não sei se fui claro mas resumindo tenho uma tarefa que é executada duas vezes uma pela usuário outra pelo componente timer
A minha solução no momento foi quando o timer for executar eu verifico se o Screen.Cursor <> crHourGlass ai se for diferente ele executa BELEZA mas deve ter uma maneira de verificar de um processo tá em execução (no caso a minha "tarefa")
Exemplo:
Eu tenho uma "Tarefa" (um procedimento) que pode ser executado e demorar minutos para acabar MAS eu tenho um timer que executa esta "tarefa" (a mesma tarefa) de um em um minuto (só ai já dá para ver qual será o problema) e se ACONTECER de as duas chamada a "TAREFA" coincidir uma com a outra eu executar e depois o timer executar
não sei se fui claro mas resumindo tenho uma tarefa que é executada duas vezes uma pela usuário outra pelo componente timer
A minha solução no momento foi quando o timer for executar eu verifico se o Screen.Cursor <> crHourGlass ai se for diferente ele executa BELEZA mas deve ter uma maneira de verificar de um processo tá em execução (no caso a minha "tarefa")
Ewerton Rodrigues
Curtidas 0
Respostas
Joel Rodrigues
31/08/2012
Você pode criar uma variável para guardar o status da tarefa. Por exemplo, a variável EM_ANDAMENTO seria true quando a tarefa iniciasse e false ao término desta. Para iniciar uma nova chamada, bastaria verificar se a variável é false.
Boa sorte.
Boa sorte.
GOSTEI 0
Ewerton Rodrigues
31/08/2012
Você pode criar uma variável para guardar o status da tarefa. Por exemplo, a variável EM_ANDAMENTO seria true quando a tarefa iniciasse e false ao término desta. Para iniciar uma nova chamada, bastaria verificar se a variável é false.
Boa sorte.
Boa sorte.
isto eu até pensei MAS não teria como ver tipo só mesmo imaginando if Button1.process = true then ou if not button.state [ineecution] sei lá algo assim entendeu
Mas valeu pela resposta
As vezes a solução simples é a melhor solução né
GOSTEI 0
Ewerton Rodrigues
31/08/2012
Você pode criar uma variável para guardar o status da tarefa. Por exemplo, a variável EM_ANDAMENTO seria true quando a tarefa iniciasse e false ao término desta. Para iniciar uma nova chamada, bastaria verificar se a variável é false.
Boa sorte.
Boa sorte.
Eu já tinha até feito um pouco diferente e tava testando no momento e funcionou
olha o código só que eu usei o CURSOR mesmo da aplicação
if Screen.Cursor <> crHourGlass then
begin
// ShowMessage('Eu executei de qualquer jeito kkk');
// Só executa mesmo quando a aplicação não estiver fazendo nada
BTTranfClick(Self);
end;Funciona também
GOSTEI 0
Joel Rodrigues
31/08/2012
Pois é, as vezes o mais simples é o melhor. Eu particularmente nunca vi nada do tipo que você falou. Talvez usando Thread você pudesse fazer algo assim, mas daria mais trabalho também. Sugiro manter como está.
Abraço.
Abraço.
GOSTEI 0