Announcement

Collapse
No announcement yet.

Verzögerungen bei CopyRect

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verzögerungen bei CopyRect

    In meiner Anwendung kopieren ich ein Teil eines Bildes in ein anderes Rechteck. Ich benutze dazu Canvas->CopyRect. Die kleine Animation läuft flickerfrei, doch alle paar sekunden gibt es eine ganz kleine Verzögerung. Kann man diese beseitigen?
    In meinem Beispiel habe ich folgenden Code in einem Timer:

    if (x + 10 <= 724)
    {
    x +=10;
    TRect Ziel = Rect(0, 0, 300, 300);
    TRect Ausgang = Rect(x, y, x + 300, y + 300);
    Canvas->CopyRect(Ziel, Bitmap->Canvas, Ausgang);
    }

    Wie muss ich den folgenden Code ändern. Oder sollte ich die API benutzen?

    Gruß Philipp

  • #2
    Hi Phillip,

    Du hast da die Abfrage if(x + 10 <= 724) . Was passiert denn wenn die Bedingung nicht zutrifft ?

    Gruß: Günther

    PS: WIN API Band 2 ist sehr empfehlenswert (nicht für Dieses Problem
    Günther

    Comment


    • #3
      Hi

      ich habe ein großes Bitmap erstellt. (1024 / 768). In meinem Programm ist ein Rechteckt von 300x300. Wenn ich nun mit der Maus nach oben, unten, links und rechts gehe möchte ich dann auch andere Teile des Bildes kopieren.
      Wenn die Bedingung nicht zutrifft, wird nichts gemacht, da das Ende des Bild erreicht wurde.

      Da ich in nächster Zeit kurz arbeiten werde, werde ich mir wohl die API Bändern zulegen.

      Gruß Philip

      Comment


      • #4
        Hi Phillip,

        wann flackert er denn dann ? Am Programm kanns doch wohl nich liegen. Ist es ein "schneller" Rechner ?

        Gruß, Günthe
        Günther

        Comment


        • #5
          Hi!

          ich habe nur einen P200 MMX mit 96MB RAM. Es flackert ja nicht, aber manchmal sind verzögerungen dabei. Diese sind aber unregelmäßig.

          Philip

          Comment


          • #6
            Hört man dabei die Festplatte ? Welche Anwendungen laufen sonst noch ? Starte Dein Programm mal ohne alles andere, auch ohne BC++Builder
            Günther

            Comment


            • #7
              Hallo,

              probier mal anstatt CopyRect BitBlt (oder, wenn Du denn Ausschnitt auch noch vergrößern möchtest StretchBlt). Das Problem bei der ganzen Sache ist nämlich, dass CopyRect auch bei keinen Größenveränderungen (stretchen) dennoch StretchBlt verwendet, was das Ganze ungemein verlangsamt.

              Gruß, Marti

              Comment


              • #8
                Hi,

                Dank für deine Antwort, bin aber schon seit einige Zeit auf diese Idee gekommen.

                Philip

                Comment

                Working...
                X