Цитата:
Сообщение от cotseec
with PaintBox1, canvas нужно не "запятая", а "точка" и зачем использовать with, если потом все равно обращение?
Код:
PaintBox1.Canvas.MoveTo(X, DY);
PaintBox1.Canvas.LineTo(X, Y)
сам PaintBox1 должен лежать (или создаваясь динамически, быть дочерним по отношению)
рисовать (выводить рисунок) в событии PaintBox1.OnPaint
|
Я объявил переменные
Код:
WavInfo: TWavInfo;
KX, KY: Extended;
i, X, Y, DY, Chanel: Integer;
как глобальные и сделал такой код:
Код:
procedure TForm1.Button_WAVgraphClick(Sender: TObject);
begin
KX := 1; // Коэффициент пропорциональности по абсциссе
KY := 0.01; // Коэффициент пропорциональности по ординате
DY := Height div 2; // Смещение по ординате
Chanel := 0; // Номер рисуемого канала
Repaint;
for i := Low(WavInfo.Samples) to High(WavInfo.Samples) do
begin
X := Trunc(KX * i);
Y := Trunc(KY * Smallint(WavInfo.Samples[i, Chanel]) + DY);
end;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.MoveTo(X, DY);
PaintBox1.Canvas.LineTo(X, Y);
end;
На TabSheet3, ясное дело, положил компонент PaintBox1. Ниже кнопку Button_WAVgraphClick, при нажатии на нее должна рисоваться гистограмма, но ничего не происходит. Что не так. Не имеет ли значение где будет находиться процедуры
Код:
procedure TForm1.Button_WAVgraphClick(Sender: TObject);
и
Код:
procedure TForm1.PaintBox1Paint(Sender: TObject);