Fórum Exibir mensagem no Label ! #293888

31/08/2005

0

meu sistema fazez inclusões de mais de 1000 registros a cada clique, gostaria de no momento co clique mostrar uma mensagem em um Label:
´Agarde processando ...´ , e após o termino das inclusões a mensagem mudasse para, ´Processo concluido !´.

só que o sistema fica parado no momento das inclusões e ao final ele só exibe a mensagem de ´Processo concluido !´.

como faço isso ????


Fabiano Góes

Fabiano Góes

Responder

Posts

31/08/2005

Massuda

[quote:c8a28b625d=´Fabiano Góes´]meu sistema fazez inclusões de mais de 1000 registros a cada clique[/quote:c8a28b625d]Nossa! :shock:

[quote:c8a28b625d=´Fabiano Góes´]só que o sistema fica parado no momento das inclusões e ao final ele só exibe a mensagem de ´Processo concluido !´.[/quote:c8a28b625d]Após atualizar a mensagem no label, chame o método Update do form que contem o label.

É possível ter o mesmo resultado chamando Application.ProcessMessages, mas no seu caso pode ocorrer reentrância do código e você começar a inserir outros 1000 registros sem ter acabado de inserir os registros.


Responder

Gostei + 0

31/08/2005

Rjun

Coloque Application.ProcessMessages dentro do loop.


Responder

Gostei + 0

31/08/2005

Fabiano Góes

Como uso o Application.ProcessMessages ?

o meu código está assim:

id := 0;
Label1.Caption := ´Aguarde Processando ...´;
WHILE ID < 1000 DO
BEGIN
ID := ID +1;
strSql := ´INSERT INTO TESTE Values ( ´ +(IntToStr( ID ));
strSql := strSql +´ , ´+ #39 + ´ REGISTRO ´ + 39 + ´ ) ´;

WITH qryInclusao DO BEGIN
SQL.Clear;
SQL.Add(strSql);
ExecSQL;
END;
END;
Label1.Caption := ´Processo cocluido !´;

criei um exemplo pra teste, como ficaria então ?


Responder

Gostei + 0

31/08/2005

Rômulo Barros

procedure TForm1.Button1Click(Sender: TObject);
Var
   Teste : integer;
begin
   For Teste := 1 To 1000 Do
   Begin
      Label1.Caption := ´Registro Atual: ´ + IntToStr(Teste);
      Label1.Refresh;
      Application.ProcessMessages();
       { A linha acima processa as mensagens dos windows.
           Utilizada em grandes processamentos e sua principal
           utilidade é evitar q o programa pare de responder, através
          do erro tradicional: "Este programa não está respondendo"
        }
   End;
   Label1.Caption := "Processamento Concluído !!!";
end;


:arrow: [color=blue:1e229d3a3d][b:1e229d3a3d]Espero q tenha entendido !!![/b:1e229d3a3d][/color:1e229d3a3d]


Responder

Gostei + 0

31/08/2005

Fabiano Góes

Rômulo , é exatamente o que eu estava precisando,
Valeu heim brother !!!!!! :lol:


Responder

Gostei + 0

31/08/2005

Rômulo Barros

Relaxa !!! :wink:


Responder

Gostei + 0

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

Aceitar