Exibir mensagem no Label !
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 ????
´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
Curtidas 0
Respostas
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.
[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
31/08/2005
Coloque Application.ProcessMessages dentro do loop.
GOSTEI 0
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 ?
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
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
31/08/2005
Rômulo , é exatamente o que eu estava precisando,
Valeu heim brother !!!!!! :lol:
Valeu heim brother !!!!!! :lol:
GOSTEI 0
Rômulo Barros
31/08/2005
Relaxa !!! :wink:
GOSTEI 0