Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Fr 12.06.09 12:26 
Hallo,
ich habe hier eine Funktion mit dem ich einen Screenshot erstellen kann:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
// *** Erstellt von einem Formular ein ScreenShot ***
function FormularScreenShot(Bmp: TBitmap; h: hWnd): Boolean;
var
  Rec: TRect;
  iWidth, iHeight: Integer;
begin
  with Bmp do try
    GetWindowRect(h, Rec);

    iWidth  := Rec.Right - Rec.Left;
    iHeight := Rec.Bottom - Rec.Top;

    Width := iWidth;
    Height := iHeight;

    BitBlt(Canvas.Handle, 00, iWidth, iHeight, GetWindowDC(h), 00, SRCCOPY);

    result := True;
  finally
    ReleaseDC(h, GetWindowDC(h));
  end;
end;


Bei jeden Button Klick wird der Screen immer einbisschen weiter rechts und nach unten in Image1 gezeichnen, wieso eigentlich?

Wie kann ich den Screen von Image1 ab Position 0 zeichnen?

Danke schonmal.

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 12.06.09 12:33 
Wie meinst du das? Meinst du, weil der Rahmen natürlich mit in dem Bild ist? Wenn du den Screenshot also anzeigst, dann ist der Fensterinhalt natürlich ggf. nach rechts und unten verschoben. Meinst du das?

Was möchtest du denn erreichen?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 12.06.09 12:34 
Was hat denn der gepostete Code mit der Frage zu tun?
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Fr 12.06.09 12:41 
Ich möchte von einem externen Fenster einen Screenshot erstellen, wenn ich auf Button1 Klicke, dann wird die Funktion FormularScreenShot aufgerufen und erstellt den Screenshot.

Image1 befindet sich auf meiner Form an PosX(0) und PosY(0) und wenn der Screen in Image1 gezeichnet wird, dann ist der Screen an einer anderen stelle gezeichnet worden, z.B. im Image1 an PosX(100) und PosY(50) oder so.

Woran liegt denn der fehler?

MfG
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 12.06.09 13:04 
Wie lädst Du denn den Screenshot in das Image?