![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#46
|
|||
|
|||
|
Цитата:
|
|
#47
|
||||
|
||||
|
Цитата:
|
|
#48
|
|||
|
|||
|
Цитата:
Код:
fs := TFileStream.Create(FileName, fmCreate);
try
fs.WriteBuffer(Header, SizeOf(Header));
for I := 1 to NumSamples do
begin
for J := 1 to Header.NumChannels do
begin
fs.WriteBuffer(WavInfo.Samples[J - 1, I - 1], BytsPerSample);
end;
end; |
|
#49
|
|||
|
|||
|
И что из этого следует? WavInfo - переменная глобальная, ее видят все процедуры. Что не так?
|
|
#50
|
||||
|
||||
|
Цитата:
Цитата:
|
|
#51
|
|||
|
|||
|
Цитата:
Код:
for I := 1 to NumSamples do
begin
for J := 1 to WavInfo.WaveFormat.nChannels do
begin
fs.ReadBuffer(Sample, BytsPerSample);
case BytsPerSample of
1: Sample := Shortint(Sample);
2: Sample := SmallInt(Sample);
end;
WavInfo.Samples[J - 1, I - 1] := Sample;
if Abs(Sample) > WavInfo.MaxAmplitude then WavInfo.MaxAmplitude := Abs(Sample);
end;
end;
WavInfo.NumSamples := LongInt(NumSamples);
end; |
|
#52
|
||||
|
||||
|
Цитата:
Код:
procedure ReadWavInfo(const FileName: string; var WavInfo: TWavInfo); Код:
procedure TForm1.Button1Click(Sender: TObject);
...
begin
...
ReadWavInfo(OpenDialog1.FileName, FWavInfo);
...
end;Button1Click - читает wav-файл и записывает информацию о нём в переменную FWavInfo. Button4Click - пытается прочитать переменную WavInfo чтобы записать её содержимое в файл, но у Button4Click конечно же ничего не получается, так как в переменную WavInfo данные никто не заносил. |
|
#53
|
|||
|
|||
|
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject);
...
begin
...
ReadWavInfo(OpenDialog1.FileName, WavInfo);
...
end;Код:
FWavInfo: TWavInfo; |
|
#54
|
||||
|
||||
|
Цитата:
Код:
var XX, YY: Integer; // XX и YY это совершенно разные переменные и никакой связи между ними нет |
|
#55
|
|||
|
|||
|
Какую-то одну? Без разници какую?
|
|
#56
|
||||
|
||||
|
Цитата:
В частности, если переменная WavInfo это дествительно обычная глобальная переменная, то FWavInfo - это не просто переменная, а поле класса TForm1, т.е. без объекта созданного от класса TForm1 этой переменной просто не существует. И кроме того, из процедур и методов не класса TForm1, к ней нельзя обратиться напрямую, только через указание объекта, к переменной-полю FWavInfo которой необходимо обратиться. |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Dmitry_DM (31.08.2012)
| ||
|
#57
|
|||
|
|||
|
Цитата:
|