Hallo,
ich habe ein Problem mit der Visualisierung von Sounddateien mit der bass.dll.
Und zwar benutze ich eine PaintBox, um die Töne darzustellen.
Delphi-Quellcode:
data := BassdllPlayer1.GetFFTData;
for i := 0 to 255 do Data[i] := Data[i] * ln(i + 1) * 5 * Paintbox1.ClientHeight;
for i := 0 to 255 do
begin
Paintbox1.Canvas.pen.color := clYellow;
Paintbox1.Canvas.MoveTo(i, Paintbox1.height);
Paintbox1.Canvas.lineTo(i, Paintbox1.height - round(Data[i]) - 2);
end;
So, jetzt habe ich aber das Problem, dass in der PaintBox zwar alles korrekt gezeichnet wird, aber das alte nicht gelöscht wird. Also der zeichnet immer mehr Striche, bis alles nur noch gelb ist.
Und wenn ich es folgendermaßen mache, dann flackert das Bild!
Delphi-Quellcode:
data := BassdllPlayer1.GetFFTData;
for i := 0 to 255 do Data[i] := Data[i] * ln(i + 1) * 5 * Paintbox1.ClientHeight;
for i := 0 to 255 do
begin
PaintBox1.Canvas.FillRect(Form1.PaintBox1.ClientRect);
// diese zeile löscht den bildschirm zwar, aber dadurch flackert es!!
Paintbox1.Canvas.pen.color := clYellow;
Paintbox1.Canvas.MoveTo(i, Paintbox1.height);
Paintbox1.Canvas.lineTo(i, Paintbox1.height - round(Data[i]) - 2);
end;
Vielleicht hat jemand eine Idee, wie ich das lösen kann.
Gruß Paul