unit uMainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, AppEvnts;
type
TMainAppForm = class(TForm)
ApplicationEvents1: TApplicationEvents; // Кидаем на форму ApplicationEvents
procedure FormCreate(Sender: TObject);
procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
private
{ Private declarations }
procedure AppMinimize(Sender: TObject);
public
{ Public declarations }
end;
var
MainAppForm: TMainAppForm;
AppStarted: Boolean = False; // Флаг. Нужен чтобы определить момент когда стартовать Form1 вместо главной (невидимой) формы
implementation
uses Unit1, Unit2, Unit3;
{$R *.dfm}
{ TMainAppForm }
procedure TMainAppForm.AppMinimize(Sender: TObject);
begin
ShowWindow(Self.Handle, SW_HIDE);
end;
procedure TMainAppForm.FormCreate(Sender: TObject);
begin
// Заставляет Главную (невидимую) форму
// всегда оставаться всего лишь значком приложения в панели задач...
// типа как MSWord, Excel и др. серверные приложения...
Application.OnMinimize := AppMinimize;
Application.OnRestore := AppMinimize;
Application.Minimize;
AppMinimize(Self);
end;
procedure TMainAppForm.ApplicationEvents1Idle(Sender: TObject;
var Done: Boolean);
begin
// Стартуем Form1 в качестве "псевдоглавной" формы.
if not AppStarted then
begin
AppStarted := True;
Form1.Show;
end;
end;
end.