Einzelnen Beitrag anzeigen

BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#1

Schnell wiederholt in PaintBox zeichnen (Bitblt)

  Alt 26. Okt 2009, 21:31
Hallo,
ich zeichne bei meinem BeatDetector in ganz kurzen Intervallen das Spektrum.
Der Timer ist der aus MMSystems
timer := timeSetEvent(25, 25, @UpdateFreq, 0, TIME_PERIODIC); Im Timer findet folgendes statt:
Delphi-Quellcode:
Spectrum:TBitmap;

BitBlt(MainForm.PaintBox1.Canvas.Handle, 0, 0, spectrum.width, Spectrum.height,spectrum.Canvas.Handle, 0, 0, SRCCOPY);
Jetzt passiert folgendes:
  • Nach einiger Zeit bleibt das Spektrum stehen(unter XP später, unter Win 7/Vista früher)
  • Blende ich jetzt die PaintBox aus und wieder ein, so funktioniert das Spektrum unter XP wieder.
    Unter Win 7/Vista dagegen ist es dann ganz verschwunden, die PaintBox ist also durchsichtig.

Allerdings habe ich durch zwischenzeitliches Speichern der Bitmap Spectrum erkannt, das diese durchgehend weitergezeichnet wird. Einzig das übertragen in die PaintBox scheint nicht zu funktionieren.

Kann irgendjeman dieses Verhalten erklären und mir einen Tipp geben, wie ich das beheben kann?
Vielen Dank!
Viele Grüße,
Benjamin
Benjamin
  Mit Zitat antworten Zitat