unit UFrmModless; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TFrmModeless = class(TForm)
lblInfo: TLabel;
btnClose: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
private
{ Private declarations }
procedure WMNCHITTEST(var Msg:TWMNCHITTEST);message WM_NCHITTEST;
public
{ Public declarations }
procedure CreateParams(var params: TCreateParams); override;
end; var
FrmModeless: TFrmModeless; implementation {$R *.dfm}
procedure TFrmModeless.CreateParams(var params: TCreateParams);
begin
inherited CreateParams(params);
params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER;
end; procedure TFrmModeless.WMNCHITTEST(var Msg: TWMNCHITTEST);
begin
inherited;
Msg.Result:=HTCaption;
end; procedure TFrmModeless.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
// FrmModeless := nil;
end; procedure TFrmModeless.FormDestroy(Sender: TObject);
begin
FrmModeless := nil;
end; procedure TFrmModeless.btnCloseClick(Sender: TObject);
begin
self.Close;
end; end.