|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Цитата:
|