Entwickler-Ecke

Multimedia / Grafik - Probleme mit ScreenShots?


jackie05 - Fr 12.06.09 12:26
Titel: Probleme mit ScreenShots?
Hallo,
ich habe hier eine Funktion mit dem ich einen Screenshot erstellen kann:

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 - 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?


Delete - Fr 12.06.09 12:34

Was hat denn der gepostete Code mit der Frage zu tun?


jackie05 - 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


Delete - Fr 12.06.09 13:04

Wie lädst Du denn den Screenshot in das Image?