Entwickler-Ecke
Multimedia / Grafik - Eine Bewegung erzeugen ohnre refresh
asbito - Mi 20.01.10 21:24
Titel: Eine Bewegung erzeugen ohnre refresh
Hi leute ich habe eine frage wenn man ein einefache bewegung mittels timer erstellt, kann diese ja nur funktionieren, indem man ein refresh durchführt dies führt aber zum kompletten löschen dev canvas fläche. gibt es eine andere möglichkeit dafür? Habe st copyrect versucht aber da habe ich das gleiche problem.
lg asbito.
Hidden - Mi 20.01.10 21:50
Hi :)
Womit arbeitest du? canvas, Form1.Canvas, Image1.canvas oder Paintbox1.canvas?
- Canvas: Du verwendest das Canvas von Form1(weißt es aber nicht?). Siehe:
- Form1.canvas: Andere Systemteile malen unkontrolliert an die selbe Stelle wie du. Wenn du es sauber machen willst, lass' es^^
- Image1.Canvas: Hier sollte das Problem schon nicht auftreten. Dennoch; TImage gibt dir nicht die volle Kontrolle und ist meißtens nicht die Lösung. Was immer du zeihnest, soll sich ja einigermaßen flott bewegen und nicht flackern, da macht TImage zu viel überflüssiges.
- Paintbox1.Canvas: TPaintbox gibt dir die vollständige Kontrolle über den Zeichenprozess. Es benachrichtigt dich jedes mal, wenn Windows oder sonst etwas einen Redraw verursacht(zB. Formular drüberziehen), und ruft eine deiner Mehtoden auf. Du bringst dann immer genau das auf den Bildschirm, was du haben willst.
dazu nimmst du ein Objekt der Klasse TBitmap aus der unit Graphics, und hältst es virtuell im Speicher. Alles, was dauerhaft zu sehen sein soll, kommt in diese Bitmap, und bei jedem Redraw zeichnest du zuerst diesen Hintergrund auf, dann bewegliche Elemente wie einen Ball o.ä..
Genaueres dazu gibt es hier über die Suche. :)
mfG,
FinnO - Mo 01.02.10 23:30
ich glaube in deinem Fall würde sich eher die Nutzung eines unsichtbaren Bitmaps als Buffer anbieten. Das wäre z.B. für so Dinge wie das Linie-Ziehen bei Paint eine Möglichkeit.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!