{Form'a bit TTimer koyun ve Interval = 25 olsun.}
procedure TForm1.Timer1Timer(Sender: TObject);
var
 Srect,Drect,PosForme:TRect;
 iWidth,iHeight,DmX,DmY:Integer;
 iTmpX,iTmpY:Real;
 C:TCanvas;
 Kursor:TPoint;
 ZoomFactor: Integer;
begin
 GetCursorPos(Kursor);
 PosForme:=Rect(Form1.Left,Form1.Top,Form1.Left+Form1.Width,Form1.Top+Form1.Height);
 If not PtInRect(PosForme,Kursor) then
 begin
 If Panel1.Visible=True then Panel1.Visible:=False;
 If Image1.Visible=False then Image1.Visible:=True;
 iWidth:=Image1.Width;
 iHeight:=Image1.Height;
 Drect:=Rect(0,0,iWidth,iHeight);
 { 2x kadar büyütür. 4x icin 2, ...}
 ZoomFactor := 1;
 iTmpX:=iWidth / (ZoomFactor * 4);
 iTmpY:=iHeight / (ZoomFactor * 4);
 Srect:=Rect(Kursor.x,Kursor.y,Kursor.x,Kursor.y);
 InflateRect(Srect,Round(iTmpX),Round(iTmpY));
 // move Srect if outside visible area of the screen
 If Srect.Left<0 then OffsetRect(Srect,-Srect.Left,0);
 If Srect.Top<0 then OffsetRect(Srect,0,-Srect.Top);
 If Srect.Right>Screen.Width then OffsetRect(Srect,-(Srect.Right-Screen.Width),0);
 If Srect.Bottom>Screen.Height then OffsetRect(Srect,0,-(Srect.Bottom-Screen.Height));
 C:=TCanvas.Create;
 try
 C.Handle:=GetDC(GetDesktopWindow);
 Image1.Canvas.CopyRect(Drect,C,Srect);
 finally
 C.Free;
 end;
 Application.ProcessMessages;
 end // Cursor Form'un icinde degil
 else
 begin // cursor Form'un icinde
 If Panel1.Visible=False then Panel1.Visible:=True;
 If Image1.Visible=True then Image1.Visible:=False;
 end;
end;