Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Form mit bsSingle unter Aero zu groß

  Alt 19. Apr 2011, 14:07
Hier mal mein Testprojekt:
  1. Neues VCL-Projekt anlegen.
  2. Im OI Form1.Height auf 100 und Form1.BorderStyle auf bsSingle setzen.
  3. Neues Formular hinzufügen (Form2).
  4. Button auf Form1 mit folgendem OnClick-Handler:
    Delphi-Quellcode:
    const
      DWMWA_EXTENDED_FRAME_BOUNDS = 9;

    function DwmGetWindowAttribute(hwnd: HWND; dwAttribute: DWORD; pvAttribute: Pointer; cbAttribute: DWORD): HResult; stdcall;
      external 'dwmapi.dll';

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Form2: TForm2;
      r: TRect;
    begin
      //DwmGetWindowAttribute(Handle, DWMWA_EXTENDED_FRAME_BOUNDS, @r, SizeOf(r));
      r := BoundsRect;
      OffsetRect(r, 20, 0);

      Form2 := TForm2.Create(Self);
      try
        Form2.BoundsRect := r;
        Form2.ShowModal;
      finally
        Form2.Free;
      end;
    end;
Das liefert folgendes:big.png
Kommentiert man die Zeile r := BoundsRect; aus und aktiviert dafür den Dwm-Aufruf, so erhält man:dwm.png

Wäre nett, wenn das mal jemand unter Delphi XE ausprobieren könnte - vielleicht ist das Problem da ja gar nicht mehr vorhanden.
Uli Gerhardt
  Mit Zitat antworten Zitat