Exibir mensagem no Label !

Delphi

31/08/2005

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

Curtidas 0

Respostas

Massuda

Massuda

31/08/2005

[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.


GOSTEI 0
Rjun

Rjun

31/08/2005

Coloque Application.ProcessMessages dentro do loop.


GOSTEI 0
Fabiano Góes

Fabiano Góes

31/08/2005

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 ?


GOSTEI 0
Rômulo Barros

Rômulo Barros

31/08/2005

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]


GOSTEI 0
Fabiano Góes

Fabiano Góes

31/08/2005

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


GOSTEI 0
Rômulo Barros

Rômulo Barros

31/08/2005

Relaxa !!! :wink:


GOSTEI 0
POSTAR