![]() |
AW: Screenshot erstellen und speichern
Inzwischen habe ich alles andere auskommentiert und lediglich die folgenden zwei Units in der Uses-Liste belassen:
Delphi-Quellcode:
Trotzdem kommt die Fehlermeldung: [dcc32 Fehler]: E2003 Undeklarierter Bezeichner: 'SetSize' :(
Uses
Vcl.Graphics, Winapi.Windows; |
AW: Screenshot erstellen und speichern
Könnte bitte jemand folgenden Test mit XE5 kompilieren? :-D
Delphi-Quellcode:
Mein Compiler weigert sich hartnäckig. :cry:
program DesktopScreenShot_Test_1;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Vcl.Graphics, Winapi.Windows; procedure DesktopScreenShot(DestBitmap: TBitmap; SourceRect: TRect); // https://www.delphipraxis.net/75883-screenshot-erstellen-und-speichern-2.html // #12: von Uwe Raabe // 2022-10-10, um 11:43 Uhr var DC: HDC; wnd: HWND; begin wnd := GetDesktopWindow; DC := GetDC(wnd); try DestBitmap.SetSize(SourceRect.Width, SourceRect.Height); BitBlt(DestBitmap.Canvas.Handle, 0, 0, SourceRect.Width, SourceRect.Height, DC, SourceRect.Left, SourceRect.Top, SRCCOPY) ; finally ReleaseDC(wnd, DC); end; end; begin try except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. Danke! Grüße, Andreas |
AW: Screenshot erstellen und speichern
Hallo
dreh mal die Reihenfolge der units um, zuerst windows und dann graphics. Tbitmap ist in beiden units definiert oder du schreibst
Delphi-Quellcode:
also VCL.Graphics. ...
procedure DesktopScreenShot(DestBitmap: VCL.Graphics.TBitmap
|
AW: Screenshot erstellen und speichern
Danke Keldorn! :thumb:
Mir sind qualifizierte Bezeichner sympathischer:
Delphi-Quellcode:
, denn die Umkehrung der Reihenfolgde der Units könnte u.U. in anderen Routinen für Chaos sorgen!
procedure DesktopScreenShot(DestBitmap: VCL.Graphics.TBitmap; SourceRect: TRect);
Danke Euch allen & Grüße :-D Andreas |
AW: Screenshot erstellen und speichern
Kennst du Strg+Linksklick auf "dein" TBitmap?
Zitat:
Warum ausgerechnet HIER dieser "Pascalname", in der WinAPI, und wenn, warum dann nicht TBitmapHeader. Ist ja fast so ein Schwachsinn, wie das mit den beiden TMonitor. :wall: Lösung 1:
Delphi-Quellcode:
Lösung 2:
uses
Winapi.Windows; System.SysUtils, Vcl.Graphics, // Windows vor Graphics
Delphi-Quellcode:
procedure DesktopScreenShot(DestBitmap: Vcl.Graphics.TBitmap; SourceRect: TRect);
|
AW: Screenshot erstellen und speichern
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz