Eu mesmo!

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de EmbarcaDelphi
Enviada em: terça-feira, 11 de agosto de 2009 15:10
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] showMessage

 

Se não me engano, essa function foi desenvolvida pelo Rubem, copie e cole:

function MessageBoxTimer(const AMsg, ATitle: String;
DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons;
MSecs: Cardinal = 0;
ShowProgressBar: Boolean = True) : integer;
var
lMsgDialog: TForm;
lTimerMethod: TNotifyEvent;

procedure UpdateProgressBar(Data: Pointer; Sender: TObject);
var
lForm: TForm;
lProgressBar: TProgressBar;
begin
if Sender is TTimer then
if TTimer(Sender).Owner is TForm then
begin
lForm := TForm(TTimer(Sender).Owner);
lProgressBar := TProgressBar(lForm.FindComponent('ProgressBar'));
if Assigned(lProgressBar) then
if lProgressBar.Position + 1 < lProgressBar.Max then
lProgressBar.StepIt
else
lForm.ModalResult := mrCancel;
end;
end;

procedure TranslateCaptionButtons;
const
AButtonNames: array[TMsgDlgBtn] of String = ('YES',
'NO',
'OK',
'CANCEL',
'ABORT',
'RETRY',
'IGNORE',
'ALL',
'NOTOALL',
'YESTOALL',
'HELP');
AButtonCaptions: array[TMsgDlgBtn] of String = ('Sim',
'Não',
'Ok',
'Cancelar',
'Abortar',
'Retentar',
'Ignorar',
'Tudo',
'Não a Tudo',
'Sim a Tudo',
'Ajuda');
var
lBtnType: TMsgDlgBtn;
lButton: TButton;
begin
for lBtnType := Low(TMsgDlgBtn) to High(TMsgDlgBtn) do
begin
lButton := TButton(lMsgDialog.FindComponent(AButtonNames[lBtnType]));
if Assigned(lButton) then
lButton.Caption := AButtonCaptions[lBtnType];
end;
end;

begin
// Cria a caixa de diálogo
lMsgDialog := CreateMessageDialog(AMsg, DlgType, Buttons);
lMsgDialog.Caption := ATitle;

// Traduz botões existentes no diálogo
TranslateCaptionButtons;

// Checa se será necessário uma barra de progresso
if MSecs > 0 then
begin
with TProgressBar.Create(lMsgDialog) do
begin
Name := 'ProgressBar';
Parent := lMsgDialog;
Align := alBottom;
Max := MSecs div 1000;
Min := 0;
Step := 1;
Position := 0;
Visible := ShowProgressBar;
end;

lMsgDialog.Height := lMsgDialog.Height + (Ord(ShowProgressBar) * 10);
with TTimer.Create(lMsgDialog) do
begin
Name := 'MsgTimer';
Interval := 1000;
end;

// Cria o timer, usando uma rotina 'solta' (stand-alone, desvinculada de
// uma instância de objeto) para fazer o trabalho de atualização da 
barra
// de progressão (caso exista) e também o tempo que será contado para
// fechar a janela
TMethod(lTimerMethod).Code := Addr(UpdateProgressBar);
TMethod(lTimerMethod).Data := lMsgDialog.FindComponent('MsgTimer');
TTimer(lMsgDialog.FindComponent('MsgTimer')).OnTimer := lTimerMethod;

try
// Chama a caixa de diálogo e verifica o seu retorno
Result := lMsgDialog.ShowModal;

finally
lMsgDialog.Free;
end;
end;
end;

blz

brunolbra...@yahoo.com.br <mailto:brunolbrasil%40yahoo.com.br>  escreveu:
> 
>
> Boa tarde!
>
> Seguinte... se eu dou o comando:
>
> showMessage('Teste');
>
> o delphi exibe uma caixa com a msg: Teste na tela e essa msg só sai depois
> que alguém pressionar em OK.
>
> Tem como eu fazer algum comando para essa msg sair automaticamente?
>
> Obrigado!
>
> .
>
> 





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

Responder a