Thema: Delphi Vista Aero Glass Effekt

Einzelnen Beitrag anzeigen

BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#1

Vista Aero Glass Effekt

  Alt 15. Mär 2007, 16:54
Hallo,
ich versuche nach den Angaben auf dieser Seite den Effekt, dass der Rand eines Formulars durchsichtig ist bei mir in ein Formular einzubauen.
Delphi-Quellcode:
type
  _MARGINS = packed record
    cxLeftWidth: Integer;
    cxRightWidth: Integer;
    cyTopHeight: Integer;
    cyBottomHeight: Integer;
  end;
  PMargins = ^_MARGINS;
  TMargins = _MARGINS;
  TTransparentFormArea=function(destHandle:HWND; Margins:PMargins): HRESULT; stdcall;

var
  hDLL: THandle; // Handle zur DLL
  iRes: integer; // Ergebnis der Funktion
  FarProc: TTransparentFormArea;
  sDLLPath: string;
  Margins:TMargins;
begin
  sDLLPath := 'dwmapi.dll';
  hDLL := LoadLibrary(PChar(sDLLPath));
  if hDLL = 0 then begin
    ShowMessage('DLL konnte nicht geladen werden.');
    Exit;
  end;

  try
    FarProc := GetProcAddress(hDLL, 'DwmExtendFrameIntoClientArea');
    if Assigned(FarProc) then
    Begin
      Margins.cxLeftwidth:=10;
      Margins.cxLeftwidth:=30;
      Margins.cyTopheight:=40;
      Margins.cyBottomheight:=30;
      FarProc(Self.Handle,@Margins);
    End;
  except
    ShowMessage('Funktion der DLL konnte nicht ausgeführt werden.');
  end;
end;
Das Ergebnis ist ziemlich komisch. Bei mir wird der Linke, Rechte und untere Rand(jeweils so Dick wie in Margins beschrieben) weiß. Am Rechten Rand wird eine schwarze Linie(1px) gezeichnet.
Kann das jemand nachvollziehen?

Vielleicht weiß ja auch jemand, was ich falsch gemacht habe?
Vielen Dank..
Benjamin
Benjamin
  Mit Zitat antworten Zitat