Einzelnen Beitrag anzeigen

Kenrai

Registriert seit: 4. Jun 2014
11 Beiträge
 
#8

AW: Firemonkey Komponente mit Handle

  Alt 9. Okt 2014, 07:26
Vielen Dank für deine Rückmeldung.

Die Su-Fu kenn ich und habe ich benutzt...
Natürlich auch viel zu dem Thema gefunden, aber eben das meiste für VCL wie z.B.
Delphi-Quellcode:
Function myBMPWindowSnap(var bmp: TBitmap; windowHandle: HWND): boolean;
var rc : TRect;
    huser32 : THandle;
    F : function(Hnd: HWND; HdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
begin
   Result := False;
   huser32 := GetModuleHandle(user32);
   if huser32 <> 0 then begin
     @F := GetProcAddress(huser32, 'PrintWindow');
     if @F <> nil then begin
       GetWindowRect(windowHandle, rc);
       bmp.Width := rc.Right - rc.Left;
       bmp.Height := rc.Bottom - rc.Top;
       bmp.Canvas.Lock;
       try
         Result := F(windowHandle, bmp.Canvas.Handle, 0);
       finally
         bmp.Canvas.Unlock;
         if Result and ((bmp.Width = 0) or (bmp.Height = 0))
           then Result := False;
       end;
     end;
   end;
end;
Doch leider gibts in FireMonkey sachen wie z.B. das Handle von BMP nicht...
Und wenn ich was für FireMonkey gefunden habe, dann nur für sichtbare Fenster

-Edit-
Dazu kommt, dass wenn man z.B. nur die Canvas der 2. Form erwischt, das eingeschnappte Fenster (notepad) nicht dargestellt wird, da es ja nicht wirklich auf der Canvas existiert. D.H. man müsste über das Fenster selbst (notepad) den Screenshot abgreifen. In VCL gäbe es da ein paar Sachen aber in FireMonkey bin ich da nicht so bewandert...
Falls jemand ein bereits vorhandenes Thema zu so etwas hätte das ich nicht gefunden habe, wärs super wenn einer das verlinken könnte

Geändert von Kenrai ( 9. Okt 2014 um 08:09 Uhr)
  Mit Zitat antworten Zitat