AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Wandern mit CopyRect
Thema durchsuchen
Ansicht
Themen-Optionen

Wandern mit CopyRect

Ein Thema von Jazzman_Marburg · begonnen am 15. Jan 2010 · letzter Beitrag vom 15. Jan 2010
Antwort Antwort
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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

Re: Wandern mit CopyRect

  Alt 15. Jan 2010, 12:50
Der dritte Parameter in Bounds gibt die Breite an, nicht den rechten Rand!

function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect;
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

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

Re: Wandern mit CopyRect

  Alt 15. Jan 2010, 13:03
Wow!
Und ich fragte mich schon gestern Abend, was denn wohl der Unterschied zwischen BOUNDS und RECT ist... unterliße es aber, das herauszufinden. Jetzt weiss ich es.

Vielen Dank und 'nen schönen Tag!
Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz