Einzelnen Beitrag anzeigen

changlee
(Gast)

n/a Beiträge
 
#9

AW: Funktionsplotter: Kurve mit Maus flüssig verschieben

  Alt 30. Aug 2011, 13:40
Danke für die vielen Antworten und Tips.

Nach einigem Aufräumen im Code funktioniert etzt alles einwandfrei.

Ich würde zunächst mal mit Delphi-Referenz durchsuchenTCanvas.CopyRect oder besser Delphi-Referenz durchsuchenBitBlt den bereits berechneten Teil der Kurve verschieben, und nur den „neuen“ Teil neu berechnen/plotten, statt jedes mal alles zu berechnen.
Ich mache es der Einfachheit wegen momentan so, dass die gesamte Kurve gezeichnet wird, auch wenn sich dann ein Teil der Kurve außerhalb der Canvas-Fläche befinden und somit nicht sichtbar sind. Von der Performance reicht es bislang aus.

Im OnPaint-Ereignis der Paintbox kopiere ich mit bitblt den Inhalt des bitmaps in die Paintbox.
Im OnMouseMove-Ereignis erstelle ich das bitmap neu und rufe dann paintbox.repaint auf.
Sollte es so schon funktionieren, oder sollte ich direkt in die Paintbox zeichnen?
Grundsätzlich gut, aber rufe statt repaint() lieber invalidate() auf.
OK, verwende jetzt invalidate - auch wenn ich den Vorteil mit den Infos aus der Hilfe noch nicht so richtig verstanden habe
  Mit Zitat antworten Zitat