No tengo ejemplos puntuales para este tipo de graficación (ondas), pero:
* Para graficar la onda: es mejor usar el MoveTo() para el primero punto y luego una serie de LineTo(). El pixels es un tanto lento. Un objeto TTimer sería bueno para la animación y en su OnTimer ejecutar un repaint() de un TPaintBox donde en su evento onPaint dibujes un Tbitmap conteniendo la onda graficada:
* En un Tbitmap preparas la imagen (en su canvas aplicas los moveTo(), LineTo(), etc) y luego aplicas un .draw de este TBitmap en el canvas del PaintBox: obtienes una animación sin parpadeos.
+ Y un tip mas: Si aún tienes algo de parpadeo:
Código Delphi
[-]
with self do ControlStyle:=ControlStyle+[csOpaque];
OJO que esto es más recomendado para formularios donde sólo tienes el area gráfica y nada más: como en un juego, o un form donde sólo muestres el gráfico de las ondas.
P.D.
En lugar de: application.Terminate;
un: close(); generalmente es más recomendado.