var
  Form1: TForm1;
  WavIn : PHWaveIn;
  Header : PWaveHdr;
  Data : Pointer;
  Size : integer;
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
   WavFm : PWaveFormatEx;
begin
   with WavFm^ do
   begin
     wFormatTag:=WAVE_FORMAT_PCM;
     nChannels:=1;
     nSamplesPerSec:=11025;
     nAvgBytesPerSec:=88200;
     nBlockAlign:=1;
     wBitsPerSample:=8;
     cbSize:=0;
   end;
   SendWaveDataToMem(WavFm);
end;
function TForm1.SendWaveDataToMem(WavFmtEx : PWaveFormatEx) : Boolean;
var
   i : integer;
   SizeBuf : integer;
   MemBlock : Pointer;
begin
    Result:=False; // FAILURE;
    WavIn:=New(PHWaveIn);
    SizeBuf:=256;
    i:=WaveInOpen(WavIn,0,WavFmtEx,Self.Handle,0,CALLBACK_WINDOW or WAVE_MAPPED);
    if i<>0 then EXIT;
    GetMem(MemBlock,SizeBuf);
    Header:= New(PwaveHdr);
    Header.lpData          := MemBlock;
    Header.dwBufferLength  := SizeBuf;
    Header.dwBytesRecorded := 0;
    Header.dwUser          := 0;
    Header.dwFlags         := 0;
    Header.dwLoops         := 0;
    waveInPrepareHeader(WavIn^,Header,SizeOf(TWavehdr));
    waveInAddBuffer(WavIn^,Header,SizeOf(TWaveHdr));
    WaveInStart(WavIn^);
end;
버튼 1에있는 구조체 값을 입력해서 넘겨줬는데요...
계속 컴파일러는 경고(Warning)메시지로 버튼1의 구조체가 초기화가 되지않았다고 나오네요...
컴파일은 되는데 실행시키면 계속 에러가 납니다...
도아주세요...
			 
	
	
    
    
	
	
    
    
    
해당 구조체 크기만큼 메모리를 할당하여 해당 포인터가 그 메모리를 가리키도록 해 주어야 합니다.
GetMem과 FreeMem 메소드를 이용해서 말이죠 ^^
아래 소스 중간에 넣었으까, 참고하세요.
//요기에 요렇게 추가해 보세요...
GetMem(WavFm, Sizeof(TWaveFormatEx));
// 생성한 메모리를 해제합니다.
FreeMem(WavFm, Sizeof(TWaveFormatEx));