Thema: Delphi Wandern mit CopyRect

Einzelnen Beitrag anzeigen

Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

Wandern mit CopyRect

  Alt 15. Jan 2010, 12:42
Werte Gemeinde!

Irgendwie hab ich mal wieder Tomaten auf den Augen -- ich kann es einfach nicht fassen:

Ich kopiere mit CopyRect ein konstant großes Rechteck aus einer Bitmap1 auf eine zweite Bitmap2. Dabei wandere ich Schrittweise von links nach rechts in der Bitmap1. Am Anfang ist alles ok, aber mit zunehmender Schrittanzahl sehe ich, dass scheinbar der Bereich den ich aus der Bitmap1 kopiere immer größer wird und immer verkleinerter auf Bitmap2 dargestellt wird. Ich bin aber sicher, dass das Rechteck, welches ich kopiere konstant in seiner Größe ist.
Hier die entsprechende Stelle im Code:

Delphi-Quellcode:
    X1 := 0;
  X2 := 100;
...
  LOOP
    INC(X1); // wir wandern von links nach rechts
    INC(X2); // dito, also ist das Rechteck doch konstant groß?!

    {--- Kopiert Rechteck aus Bitmap1 nach Bitmap2 ----------------------}
    BMP2.Canvas.CopyRect( Bounds(0, 0, 100, 100), BMP1.Canvas, Bounds(X1, 0, X2, 100));

    {--- Zeigt das Kopierte in BMP3 an ----------------------------------}
    BMP3.Canvas.CopyRect ( Bounds(0, 0, 100, 100), BMP2.Canvas, Bounds(0, 0, 100, 100));

  ENDLOOP
Das was ich in BMP3 zu sehen bekomme ist im 1. Schritt 100% ok, mit jedem weiterem Schritt jedoch, wird scheinbar der kopierte Bereich immer größer und wird im BMP3 ge-stratcht dargestellt (gestaucht, verkleinert).

Zauberei? Jemand eine Idee, was ich da falch mache?

Vielen Dank!
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat