Eine weitere Möglichkeit wäre folgende: (Auch hier ist aber mindestens Delphi 2007 erforderlich)
Delphi-Quellcode:
type
TForm1 = class(TForm)
procedure WMNCCALCSIZE(var msg: TWMNCCalcSize); message WM_NCCALCSIZE;
public
end;
....
procedure TForm1.WMNCCALCSIZE(var msg: TWMNCCalcSize);
begin
msg.CalcValidRects := True;
msg.Result := 0;
end;
Dies erzeugt dann zunächst mal ein rahmenloses Fenster. Der Glassrahmen wird dann mit Hilfe der Eigenschaft "Glassframe" wieder hinzugefügt.
Edit:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
if IsCompositionActive //Aero aktiv?
then begin
GlassFrame.Enabled := True;
GlassFrame.Left := GetSystemMetrics(SM_CXSIZEFRAME);
GlassFrame.Right := GetSystemMetrics(SM_CXSIZEFRAME);
GlassFrame.Top := GetSystemMetrics(SM_CYSIZEFRAME);
GlassFrame.Bottom := GetSystemMetrics(SM_CYSIZEFRAME);
end;
end;
Edit:
Bei älteren Delphi-Version muss man vermutlich die Funktion "DwmExtendFrameIntoClientArea" bemühen, um den Glassrahmen in dem Clientbereich zu erzeugen.