Meine aktuelle Funktion sieht momentan so aus. Ich habe nur die markierte Stelle geändert aber leider habe ich keinen Zugriff auf GetClientRect.
Delphi-Quellcode:
function GetVisibleStatus(
const PForm: TForm): TVisibleStatus;
var
Clip: Integer;
hDC: THandle;
ClipRect, ClientRect: TRect;
begin
hDC := GetDC(PForm.Handle);
Clip := GetClipBox(hDC, ClipRect);
case Clip
of
NULLREGION:
Result := vsHidden;
// Fenster ist komplett versteckt
SIMPLEREGION:
begin
ClientRect := PForm.GetClientRect;
// nur das hier habe ich geändert
if EqualRect(ClipRect, ClientRect)
then // vollständig sichtbar
Result := vsVisible
// ClientRect ist sichtbar
else // teils sichtbar
Result := vsPartVisible;
// ClientRect ist sichtbar
end;
COMPLEXREGION:
// Region besteht aus mehr als einem Rechteck, Fenster ist teils sichtbar
Result := vsPartVisible;
end;
ReleaseDC(
Handle, hDC);
end;
Die letzte Zeile verstehe ich auch nicht. Müsste da nicht eigentlich PForm.Handle stehen und nicht
Handle?