Não consigo enviar arquivo... então segue o código direto mesmo... aheuaheua
Tenta usar esta classe que fiz para exibir mensagens durante processos longos... {Classe para exibição de Mensagens Informativas durante a execução de algum processo. Exemplo: var fMsg: TInfoMessage; begin fMsg:=TInfoMessage.Create(Self,'Primeira Mensagem...'); ou fMsg:=TInfoMessage.Create(Self); ... fMesg.Text:='Segunda Mensagem...'; ... fMesg.Text:='Terceira Mensagem...'; ... fMsg.Free; end;} type TInfoMessage = class(TObject) private FMemo: TMemo; FText: String; FForm: TForm; procedure setText(const Value: String); property Form: TForm read FForm write FForm; property Memo: TMemo read FMemo write FMemo; public property Text: String read FText write setText; destructor Destroy; override; constructor Create(AOwner: TComponent); overload; constructor Create(AOwner: TComponent; sMsg: String); overload; end; ################################################################################################ { TInfoMessage } constructor TInfoMessage.Create(AOwner: TComponent); begin inherited Create; FForm:=TForm.Create(AOwner); if AOwner<>nil then FForm.Position:=poOwnerFormCenter else begin FForm.Position:=poScreenCenter; end; FForm.Height:=23; {$IFDEF MSWINDOWS} FForm.BorderStyle:=bsNone; {$ENDIF} {$IFDEF LINUX} FForm.BorderStyle:=fbsNone; {$ENDIF} FForm.BorderIcons:=[]; Memo:=TMemo.Create(FForm); Memo.Parent:=FForm; Memo.Align:=alClient; Memo.Alignment:=taCenter; Memo.ReadOnly:=True; {$IFDEF MSWINDOWS} Memo.Color:=$00985632; Memo.Font.Color:=clWhite; {$ENDIF} {$IFDEF LINUX} Memo.Color:=$00E3E0DF; Memo.Font.Color:=clBlack; {$ENDIF} Memo.Font.Size:=10; Memo.Font.Style:=[fsBold]; Application.ProcessMessages; end; constructor TInfoMessage.Create(AOwner: TComponent; sMsg: String); begin Create(AOwner); Text:=sMsg; end; destructor TInfoMessage.Destroy; begin if (Self<>nil)then begin if(Assigned(FForm))and(FForm.Showing)then begin FForm.Close; Application.ProcessMessages; end; if(Assigned(FMemo))then FreeAndNil(FMemo); if(Assigned(FForm))then FreeAndNil(FForm); end; inherited; end; procedure TInfoMessage.setText(const Value: String); var iLen: Integer; begin FText := StringReplace(StringReplace(Value,#13,'',[]),#10,'',[]); iLen:=Length(FText); Memo.Lines.Clear; Memo.Lines.Add(FText); FForm.Width:=iLen*8; if FForm.Owner<>nil then FForm.Position:=poOwnerFormCenter else begin FForm.Position:=poScreenCenter; end; if FText<>'' then FForm.Show else if FForm.Showing then begin FForm.Close; end; Application.ProcessMessages; end;