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