unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Image1: TImage;
Button1: TButton;
ListBox1: TListBox;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
WindowDC : HDC;
begin
// Verhindert dass das Bild bei mehrmaligem klicken immer kleiner wird ???
Image1.Picture:=Nil;
Application.ProcessMessages;
// Verhindert dass das Bild bei mehrmaligem klicken immer kleiner wird ???
// Warum weiss ich aber nicht
Image1.Picture.Bitmap.Width:=Width;
Image1.Picture.Bitmap.Height:=Height;
WindowDC := GetWindowDC(
Handle);
Try
BitBlt(Image1.Picture.Bitmap.Canvas.Handle,0,0,Width,Height,WindowDC,0,0,SRCCOPY);
Image1.Invalidate;
Finally
ReleaseDC(
Handle,WindowDC);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var Lhwnd: HWND;
LCanvas: TCanvas;
LDest: Tbitmap;
begin
LDest := TBitmap.Create;
LDest.Width := width;
LDest.Height := Height;
Lhwnd := GetWindowDC(GetDesktopWindow);
LCanvas := TCanvas.Create;
LCanvas.Handle := Lhwnd;
BitBlt(Ldest.Canvas.Handle, 0, 0, width, height, LCanvas.Handle, left, top, SRCCOPY);
Image1.Picture.Assign(LDest);
LCanvas.Free;
ReleaseDC(GetDesktopWindow, Lhwnd);
LDest.Free;
end;
end.