Hey,
hier mal ein kleines Beispiel. Auf deinem Form sollte bereits ein "TImage" namens "Image1" liegen. Dann folgende Prozedur aufrufen.
Delphi-Quellcode:
procedure TForm1.DrawWaveForm;
var
Bitmap: TBitmap;
i, Start: integer;
begin
Bitmap := TBitmap.Create;
Bitmap.Width := Image1.Width;
Bitmap.Height := Image1.Height;
Bitmap.Canvas.Brush.Color := clMaroon;
Bitmap.Canvas.Fillrect(Image1.Canvas.ClipRect);
Bitmap.Transparent := true;
Bitmap.TransparentColor := clMaroon;
Bitmap.Canvas.Pen.Color := clBlack;
Bitmap.Canvas.Pen.Width := 1;
Start := Image1.Height div 2; //Sinuskurve im Nulldurchgang beginnen -> In der Mitte
Bitmap.Canvas.MoveTo(0, Start);
for i := 0 to Image1.Width - 1 do
Bitmap.Canvas.LineTo(i, Start - Trunc(Start * sin(2*pi*(1/Image1.Width)*i)));
Image1.Transparent := true;
Image1.Picture.Assign(Bitmap);
Bitmap.Free;
end;
Grüße
Headbucket