Показать сообщение отдельно
  #5  
Старый 01.03.2009, 19:46
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

например так:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure OnTimer(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  MsgCaption = 'Осталось %d секунд';

var
  MyMsgDialog: TForm;
  Sec: Integer;

procedure TForm1.OnTimer(Sender: TObject);
begin
  MyMsgDialog.Caption := Format(MsgCaption, [Sec]);
  if Sec = 0 then MyMsgDialog.ModalResult:= ID_OK;
  Dec(Sec);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Timer: TTimer;
begin
  // Создаем диалог
  MyMsgDialog := CreateMessageDialog('   сообщение   ', mtInformation, [mbOk]);
  // Создаем таймер
  Timer := TTimer.Create(MyMsgDialog);
  Timer.Enabled := False;
  Sec:= 10; // 10 - это кол-во секунд до закрытия
  with MyMsgDialog do
  begin
    try
      Caption := '';
      //Задаем параметры таймера
      Timer.Enabled := True;
      Timer.OnTimer := OnTimer;
      OnTimer(Self);
      // Показываем окно как модальное
      case ShowModal of
        ID_OK: ;
      end;
    finally
      // Освобождаем переменные
      Timer.Free;
      Free;
    end;
  end;
end;

end.
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием