Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

S4ndr0_soad

Criando painel com mensagem de espera

Recommended Posts

Boa tarde a todos...

 

procurando por ai achei um topico aqui no forum sobre uma tela de espera enquanto o programa executa alguma tarefa, a ideia era utilizar um panel, tentando implementar isso eu estou com algumas dificuldades de compreensão mesmo, gostaria de alguma opiniao pra saber se estou no caminho certo ou não...

 

abaixo o codigo que estou tentando, nele eu estou usando o evento onClick de um botao pra simular a situação

 

procedure TForm1.Button2Click(Sender: TObject);
var
  p: TPanel;
  msg: TLabel;
begin
  p := TPanel.Create(nil);
  msg := TLabel.Create(nil);
  form1.InsertControl(p);
  with p do begin
	Parent := form1;
	Visible := false;
	BringToFront;
	Width := 373;
	Height := 109;
	Top := (form1.Height div 2)-(Height div 2);
	Left := (form1.Width div 2)-(Width div 2);
	BevelInner := bvRaised;
	//BevelOuter := bvLowered;
	Color := clSkyBlue;
	Ctl3D := true;
	BorderStyle := bsSingle;
  end;
  p.InsertControl(msg);
  with msg do begin
	Parent := p;
	Top := (p.Height div 2)-(Height div 2);
	Left := (p.Width div 2)-(Width div 2);
	Caption := 'TESTE';
  end;
  try
	 screen.Cursor := crHourGlass;
	 p.Visible := true;
	 Sleep(5000);
	 p.Visible := false;
	 screen.Cursor := crDefault;
  finally
	FreeAndNil(msg);
	FreeAndNil(p);
  end;
end;

ahh... esse label ai não ta funcionando, nao ta aparecendo nada, por enquanto não achei o erro.

 

Desde ja agradeço alguma ajuda possível.

 

[],

Sandro Ramos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você não cria um formulário de aguarde, e somente chama ele, quando criar a aplicação você cria ele, e quando fechar destrói, e quando precisar dele, somente da um .show mostrando o mesmo, fica mais simples... mas lembrando que precisa usar o .show, para não bloquear o outro form...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta Marcio, realmente dessa forma fica menos complicado neh...

 

pra nao bloquear o outro form eu vou usar o .show , ok , mas pra evitar que o usuario tente fazer algo enquanto a tela de aguarde está aparecendo eu coloco o "screen.cursor := crhourglass", será que é suficiente? há uma maneira melhor de evitar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.