// Form1 kann nicht
mehr maximiert werden, obwohl der Maximierungs-Button
// weiterhin enabled ist. Auch der Doppelklick auf die
Caption-Bar wird
// abgefangen. Mit
Button1
kann die Erlaubnis aber wieder erteilt werden.
// Getestet mit D4 unter XP
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormDblClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
procedure WMNChittest(var Msg: TWMNChittest); message WM_NCHittest;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
NCCaption: boolean;
erlaubt: boolean = false;
procedure TForm1.WMSysCommand;
begin
if (Msg.CmdType = SC_MAXIMIZE)
then begin
if erlaubt then inherited else beep;
end else inherited;
end;
procedure TForm1.WMNChittest(var msg: TWMNChittest);
begin
DefaultHandler(Msg);
if (Msg.result = HTCAPTION) and not erlaubt
then begin
Msg.result := HTCLIENT;
NCCaption := true;
end else
NCCaption := false;
end;
procedure TForm1.FormDblClick(Sender: TObject);
begin
if NCCaption then beep;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
erlaubt := not erlaubt;
end;
|