// 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; 


 

Zugriffe seit 6.9.2001 auf Delphi-Ecke