Re: Einen bestimmten Bereich des Bildschirm speichern
Liste der Anhänge anzeigen (Anzahl: 3)
@marabu,
anbei der Code und die Bilder Danke LingNeu |
Re: Einen bestimmten Bereich des Bildschirm speichern
Welchen Bildausschnitt willst du denn? Was soll auf diesem Ausschnitt zu sehen sein?
|
Re: Einen bestimmten Bereich des Bildschirm speichern
@marabu,
am Besten wäre natürlich eine flexible Auswahl. Am Anfang würde mir schon genügen, wenn ich z.B. den 1.Button und das 1.Editfenster auswählen könnte. Ich möchte später die Anfangskoordinaten setzen (2 Edit) und dann noch die Grösse des Ausschnitts (2 Edit, Höhe+Breite) Gruss LingNeu |
Re: Einen bestimmten Bereich des Bildschirm speichern
Ich habe in deinem Code den Click-Handler von Button7 ersetzt:
Delphi-Quellcode:
Damit legst du im Code fest, dass der Ausschnitt Button1 und Edit1 enthalten soll. InflateRect() bläst den Ausschnitt um 4 Pixel rundherum auf - damit es nicht so gedrängt aussieht. Auch ein interaktiver Ansatz ist machbar, indem du auf Form-Ebene ein Fokus-Rechteck aufziehst und darüber den Ausschnitt definierst.
procedure TForm1.Button7Click(Sender: TObject);
var bm: TBitmap; r: TRect; begin bm := BitmapFromWinControl(self); UnionRect(r, Button1.BoundsRect, Edit1.BoundsRect); // InflateRect(r, 4, 4); with BitmapFromBitmap(bm, r) do begin SaveToFile('Demo.bmp'); Free; end; bm.Free; end; Freundliche Grüße |
Re: Einen bestimmten Bereich des Bildschirm speichern
Warum alles so kompliziert, mach einen screeshot vom gesammten Fenster
und kopiere deinen Ausschnitt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var WinDC,MemDC : hDC; Desktop : hBitmap; zx,zy,zx1,zy1 : integer; bmp : TBitmap; begin zx := 100; zy := 100; zx1:= 100; zy1:= 100; WinDC := GetDC (GetDeskTopWindow); {Bildschirmkontext holen} MemDC := CreateCompatibleDC (WinDC); {Kompatiblen Kontext erstellen} Desktop := CreateCompatibleBitmap (WinDC, zx, zy); {Bitmaphandle machen} SelectObject (MemDC, Desktop); {selektieren} BitBlt (MemDC, 0, 0, zx, zy, WinDC, zx1, zy1, SRCCOPY); {kopieren} DeleteDC (MemDC); {und wech damit} ReleaseDC (GetDeskTopWindow, WinDC); {diesen auch} bmp := TBitmap.Create; try bmp.Handle := Desktop; Image1.Picture.Bitmap.Assign(bmp); finally FreeAndNil(bmp); end; end; |
Re: Einen bestimmten Bereich des Bildschirm speichern
@Blackheart
@marabu da habt ihr mir sehr gut weitergeholfen - Besten Dank Jetzt hab ich was zu tun :coder: Gruss LingNeu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz