帮忙看下代码错在那编译不了啊.
unit UnitFmtDialog;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, MMUtils, MMWave,
MMREGS, MMPCMSup, MMObj, MMDSPObj, MMAudio; //MMSystem,
type
TFmtDialog = class(TForm)
GrpBitLength: TRadioGroup;
GrpSampleRate: TRadioGroup;
btOK: TButton;
btCancel: TButton;
Channel: TRadioGroup;
MMWaveFile1: TMMWaveFile;
procedure FormShow(Sender: TObject);
procedure ChannelClick(Sender: TObject);
procedure GrpBitLengthClick(Sender: TObject);
procedure GrpSampleRateClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormHide(Sender: TObject);
public
Wave: TMMWave;
PWaveFormat: PWaveFormatEx;
Channels: Byte;
BitLength: Byte;
SampleRate: Longint;
end;
var
FmtDialog: TFmtDialog;
implementation
{$R *.DFM}
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.FormCreate(Sender: TObject);
begin
PWaveFormat := GlobalAllocMem(sizeOf(tWaveFormatEx));
end;
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.FormDestroy(Sender: TObject);
begin
GlobalFreeMem(pointer(PWaveFormat));
end;
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.FormShow(Sender: TObject);
begin
if (Wave <> Nil) then
begin
Channels := Ord(Wave.Mode)+1;
BitLength := Wave.BitLength;
SampleRate := Wave.SampleRate;
end
else
begin
Channels := 1;
BitLength := 8;
SampleRate := 11025;
end;
Channel.ItemIndex := Channels-1;
GrpBitLength.ItemIndex := (BitLength div 8)-1;
case Cardinal(SampleRate) of
8000..10099: GrpSampleRate.ItemIndex := 0;
11000..21999: GrpSampleRate.ItemIndex := 1;
22000..31999: GrpSampleRate.ItemIndex := 2;
32000..39999: GrpSampleRate.ItemIndex := 3;
40000..44150: GrpSampleRate.ItemIndex := 4;
else GrpSampleRate.ItemIndex := 5;
end;
end;
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.ChannelClick(Sender: TObject);
begin
Channels := Channel.ItemIndex+1;
end;
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.GrpBitLengthClick(Sender: TObject);
begin
BitLength := (GrpBitLength.ItemIndex+1) * 8;
end;
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.GrpSampleRateClick(Sender: TObject);
begin
case GrpSampleRate.ItemIndex of
0: SampleRate := 8000;
1: SampleRate := 11025;
2: SampleRate := 22050;
3: SampleRate := 32000;
4: SampleRate := 44100;
5: SampleRate := 48000;
end;
end;
{-- TForm2 ---------------------------------------------------------------}
procedure TFmtDialog.FormHide(Sender: TObject);
begin
{ build the destination format header }
pcmBuildWaveHeader(PWaveFormat, BitLength, Channels, SampleRate);
end;
end.