Im Internet habe ich einen Ansatz mit TRect gefunden, aber den verstehe ich anscheinend nicht, da es so aussieht als ob das gesamte Image1 in Image2 stark verkleinert dargestellt wird.

Es folgt der gesamte Code von Image1MouseMove ... die Zeilen die es betrifft habe ich mit
Code: Alles auswählen
//!!!!!!!!!!!!!!!!!!!!
Code: Alles auswählen
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
oldPenMode : TFPPenMode;
oldPenColor : TColor;
ImageRect : TRect; //!!!!!!!!!!!!!!!!!!!!
begin
with image1 do
begin
oldPenColor := Canvas.Pen.Color;
oldPenMode := Canvas.Pen.Mode;
Canvas.Pen.Color := clred;
Canvas.Pen.Mode := pmXor;
if deleteReticle then
begin
Canvas.Line(0,oldY,Canvas.Width,oldY);
Canvas.Line(oldX,0,oldX,Canvas.Height);
end
else
deleteReticle := true;
if isNewLine then
if deleteLine then
Canvas.Line(NLX1,NLY1,oldX,oldY)
else
deleteLine := true;
oldX := X;
oldY := Y;
Canvas.Line(0,Y,Canvas.Width,Y);
Canvas.Line(X,0,X,Canvas.Height);
if isNewLine Then
Canvas.Line(NLX1,NLY1,X,Y);
Canvas.Pen.Color := oldPenColor;
Canvas.Pen.Mode := oldPenMode;
//!!!!!!!!!!!!!!!!!!!!
ImageRect := Rect(X-10,Y-10, X+10, Y+10); //!!!!!!!!!!!!!!!!!!!!
Image2.Canvas.StretchDraw(ImageRect, Image1.Picture.Bitmap); //!!!!!!!!!!!!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!
end;
end;
Code: Alles auswählen
Image2.Canvas.StretchDraw(ImageRect, Image1.Picture.Bitmap);
Wo ist mein Denkfehler?
Vielen Dank schon einmal für eure Hilfe.