Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Ruckeln durch 2 Bilder verhindern, wie gehts? (https://www.delphipraxis.net/157383-ruckeln-durch-2-bilder-verhindern-wie-gehts.html)

Meistermg 10. Jan 2011 14:04

Ruckeln durch 2 Bilder verhindern, wie gehts?
 
Hallo,
in Informatik haben wir durch das verwenden von 2 Bildern (1 das verändert wird, 1 das angezeigt wird) verhindert, dass bei Bewegung das Bild ruckelt. Hab leider den Code nicht mehr und schreib am Donnerstag ne Arbeit drüber. Kann mir das jemand bitte erklären (am Besten mit Code).

MFG
Max

fui-tak 10. Jan 2011 14:43

AW: Ruckeln durch 2 Bilder verhindern, wie gehts?
 
Wenn man nur ein Bild nehmen würde (wahrscheinlich TImage) und das dann verändert, wird es bei jeder kleinen Veränderung neu gezeichnet, was Zeit kostet.

Nimmt man ein zweites Bild (z.B. ein TBitmap), was man nicht sehen kann und verändert dieses, wird nichts auf den Bildschirm gezeichnet (weil es ja nicht sichtbar ist). Wenn die Veränderung fertig ist, wird dann das gesamte zweite Bild auf das Erste geklatscht. Das erste wird also nur ein Mal neu gezeichnet und es tritt somit kein Flacker-Effekt auf

Code könnte so aussehen (so aus dem Kopf heraus...)
Delphi-Quellcode:
bild: TImage;
bmp: TBitmap;

...

procedure male();
begin
   bmp.assign(bild.Picture.Bitmap);//Bilddaten in bmp kopieren
   
   auf bmp herumzeichnen

   bild.Picture.bitmap.Assign(bmp);//und wieder zurük auf das TImage
end;


alternativ müsste auch einfach folgendes gehen:
Delphi-Quellcode:
DoubleBuffered := true;
jetzt wird das ganze automatisch gemacht

Meistermg 17. Jan 2011 17:34

AW: Ruckeln durch 2 Bilder verhindern, wie gehts?
 
ok, danke, hat mir sehr geholfen :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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