Vou fazer aqui, obrigado a todos.



  ----- Original Message ----- 
  From: Rafael Jorge 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Monday, October 26, 2009 6:38 PM
  Subject: Re: [delphi-br] Detalhe do processo em tempo real


    cara um simples Application.ProcessMessages na tua rotina vai evitar do form
  icar branco e travado.
  so isso. ai tu pode escrever nos labels e o usuario vai ver tudo.
  t+

  2009/10/26 Marcelo Luiz Onhate <marc...@systempro.com.br>

  >
  >
  > 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;
  >
  > 
  >

  -- 
  _________________________
  Rafael jorge alves
  Desenvolvedor/analista
  Ativa Soluções em TI.
  Recife - PE

  [As partes desta mensagem que não continham texto foram removidas]



  

[As partes desta mensagem que não continham texto foram removidas]

Responder a