{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; [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html