Form1:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, AppEvnts, StdCtrls;
type
TForm1 = class(TForm)
ApplicationEvents1: TApplicationEvents;
Button1: TButton;
Button2: TButton;
procedure ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WMHide(var msg:TMessage);Message WM_SYSCOMMAND;
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
{ TForm1 }
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if msg.message=WM_SYSCOMMAND then
begin
if msg.wParam=SC_MINIMIZE THEN
begin
handled:=true;
sendmessage(handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
exit;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
ExtendedStyle:integer;
begin
ExtendedStyle:=windows.GetWindowLong(Application.Handle,GWL_EXSTYLE);
SetWindowLong(Application.Handle,GWL_EXSTYLE,ExtendedStyle or 128);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
windows.SetWindowPos(form2.Handle,HWND_TOPMOST,0,0,form2.Width,form2.Height,SWP_SHOWWINDOW or SWP_NOMOVE );
self.SetFocus;
end;
procedure TForm1.WMHide(var msg: TMessage);
begin
IF MSG.WParam=SC_MINIMIZE THEN
begin
self.Width:=100;
self.Height:=100;
self.Left:=screen.WorkAreaLeft+screen.WorkAreaWidth-self.Width;
self.Top:=screen.WorkAreaTop+screen.WorkAreaHeight-self.Height;
exit;
end;
inherited;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form2.Close;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
windows.SetWindowPos(Handle,HWND_TOPMOST,0,0,Width,Height,SWP_SHOWWINDOW or SWP_NOMOVE );
end;
end.
Form2:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
//procedure WMHIDE(var msg:TMessage);Message WM_SYSCOMMAND;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{ TForm2 }
end.