Boa dica Alvaro, sem desmerecer as demais! Fiquei pensando aqui enquanto o pessoal mandava as dicas e fiz dessa forma:
Criei um form com a mensagem e um TProgressBar e um Timer. Com os códigos no Timer e no FormShow: procedure TfrmMsgProcesso.TempoTimer(Sender: TObject); begin prbProcesso.StepIt; if prbProcesso.Step = prbProcesso.Max then prbProcesso.Step := 10; end; procedure TfrmMsgProcesso.FormShow(Sender: TObject); begin Top := 90; // Para ficar no alto da tela Left := Trunc((Screen.Width/2) - (Width/2)); // Para ficar no centro da tela end; Criei duas funções numa UNIT geral do sistema e quando preciso da tela chamo elas: procedure MostraTelaMsgProcesso; begin Application.CreateForm(TfrmMsgProcesso, frmMsgProcesso); frmMsgProcesso.Show; frmMsgProcesso.BringToFront; end; procedure FechaTelaMsgProcesso; begin frmMsgProcesso.Close; frmMsgProcesso.Destroy; end; ----- Original Message ----- From: Alvaro To: delphi-br@yahoogrupos.com.br Sent: Friday, November 24, 2006 12:17 PM Subject: Re: [delphi-br] Tela aguardando processo Cara eu fiz o seguite criei uma funcao onde vc passa o form e a mensagem como parametro ae é criado um Panel no centro do Form! utilize da seuinte forma: try Aguarde(Formulario,'Mensagem'); Rotinas; finnaly FimAguarde(Formulario); end; segue abaixo as funções: procedure Aguarde(Formulario: TForm; Mensagem: string = ''); var pngAguarde: TPanel; begin FimAguarde(Formulario); Mensagem := Mensagem + ' ...'; Screen.Cursor := crSQLWait; pngAguarde := TPanel.Create(Formulario); with pngAguarde do begin Width := Length(Mensagem) * 9; Left := (Formulario.Width - Width) div 2; Top := (Formulario.Height - Height) div 2; Name := 'pngAguarde'; Parent := formulario; Caption := Mensagem; Height := 59; BorderStyle := bsSingle; Color := $00DEDCBE; Color := clSkyBlue; Font.Charset := DEFAULT_CHARSET; Font.Color := clWindowText; Font.Height := -11; Font.Name := 'Tahoma'; Font.Size := 10; Font.Style := [fsBold]; ParentFont := False; ParentColor := False; ParentBackground := False; Application.ProcessMessages; end; end; procedure FimAguarde(Formulario: TForm); var I: Integer; begin if Formulario = nil then Exit; try Application.ProcessMessages; for i := 0 to formulario.ComponentCount - 1 do if (formulario.Components[i] is TPanel) then if (formulario.Components[i] as TPanel).Name = 'pngAguarde' then (formulario.Components[i] as TPanel).Free; finally Screen.Cursor := crDefault; end; end; Em 24/11/06, Leonardo Felipe de Oliveira <[EMAIL PROTECTED]> escreveu: > > Pessoal, > > Alguém tem um exemplo ou algum fonte que tenha uma tela de aguardando um > processo que sendo feito? > Enquanto alguns SQL e procedimentos do banco estão sendo efetuados quero > deixar para o usuário uma tela com a mensagem: 'AGUARDE! PROCESSO EM > ANDAMENTO' e com aqueles pontilhados q ficam se mexendo enquanto o processo > não foi concluído. > > Abraços, > Leonardo > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Att., Alvaro Esteves Alves Analista de Sistemas 55 11 8214-7819 [EMAIL PROTECTED] The information contained in this message and in the attached files are restricted, and its confidentiality protected by law. In case you are not the addressee, be aware that the reading, spreading and copy of this message is unauthorized. Please, delete this message and notify the sender. The improper use of this information will be treated according the company's internal rules and legal laws. [As partes desta mensagem que não continham texto foram removidas] ------------------------------------------------------------------------------ No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.430 / Virus Database: 268.14.14/547 - Release Date: 22/11/2006 17:41 [As partes desta mensagem que não continham texto foram removidas]