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