Заставка для программы в Delphi

Сведения о программе, авторские права и т.д., лучше оформить в виде отдельной формы и показывать ее при запуске программы (как это сделано в Word). Сделать это несложно:

  1. Создаете форму (например SplashForm).
  2. Объявляете ее свободной (availableForms).
  3. В Progect Source вставляете следующее (например):
program Splashin;
uses
  Forms,
  Main in 'MAIN.PAS',
  Splash in 'SPLASH.PAS'
{$R *.RES}
begin
  try
    SplashForm := TSplashForm.Create(Application);
    SplashForm.Show;
    SplashForm.Update;
    Application.CreateForm(TMainForm, MainForm);
    SplashForm.Hide;
  finally
    SplashForm.Free;
  end;
    Application.Run;
end.

И форма SplashForm держится на экране пока выполняется Create в главной форме. Но иногда она появляется и пропадает очень быстро, поэтому нужно сделать задержку:

  1. Добавляете на форму таймер с событием:
    procedure TSplashForm.Timer1Timer(Sender: TObject);
    begin
      Timer1.Enabled := False;
    end;
    
  2. Событие onCloseQuery для формы:
    procedure TSplashForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      CanClose := Not Timer1.Enabled;
    end;
    
  3. И перед SplashForm.Hide; ставите цикл:
    repeat
      Application.ProcessMessages;
    until SplashForm.CloseQuery;
    
  4. Все! Осталось установить на таймере период задержки 3-4 секунды.
  5. Напоследок, у такой формы желательно убрать Caption:
    SetWindowLong (Main.Handle,GWL_STYLE,GetWindowLong(Main.Handle, GWL_STYLE) AND NOT WS_CAPTION OR WS_SIZEBOX);
    
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (10 оценок, среднее: 5,00 из 5)
Загрузка...
Добавить комментарий