Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#14

Re: Titelleiste der Form ausblenden, aber Rahmen beibehalten

  Alt 28. Mär 2010, 09:41
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.
Angehängte Dateien
Dateityp: zip specialwindow2_687.zip (219,1 KB, 40x aufgerufen)
  Mit Zitat antworten Zitat