Hallo DelphiNarium
das funktioniert in D10.3 nicht:
In
CaptureScreenRect werden in deinem Code nicht width und height der Bitmap gesetzt, sondern von ARect. Die Bitmap behält dadurch Grösse 0x0. (Wieder einmal ein Ausgangspunkt zur Diskussion "with Ja oder Nein"
.)
Wenn du stattdessen with ARect, Result do begin schreibst, dann klappt's:
Delphi-Quellcode:
function CaptureScreenRect( ARect: TRect ): TBitmap;
var
ScreenDC: HDC;
begin
Result := TBitmap.Create;
with ARect, Result do begin
Width := Right - Left;
Height := Bottom - Top;
Aber:
- Wenn du das Fenster über den Bildschirmrand hinaus schiebst, dann wird nur der sichtbare Bereich fotografiert.
- Wenn das Fenster durch ein anderes Fenster ganz oder teilweise überdeckt ist, dann klappt dein Ansatz auch nicht.
Kurz: Ich würde diesen Weg nicht gehen.