名前 題名 ▼ Mr.XRAYさん > ▼ takiさん > > > そのアドレスでabuf1もしくはabuf2の配列を操作したいのです。 > > こういうのは難しいですね. > コーディングの好みもあるかも知れません. > メッセージの処理の部分だけ.例えばです. > > 動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro です. > > implementation > > {$R *.dfm} > > type > Tabuf = array[1..44100] of smallint; > > var > abuf1:Tabuf; > > procedure TForm1.Button1Click(Sender: TObject); > begin > abuf1[1] := 100; > // PostMessage(Handle, MM_WOM_DONE, 0, LPARAM(@abuf1[1])); > PostMessage(Handle, MM_WOM_DONE, 0, LPARAM(@abuf1)); > end; > > // 引数の型をTaBufにした方が処理がしやすいかな,と... > procedure SetWaveData(var buf: Tabuf); > begin > buf[1] := buf[1] + 500; > buf[3] := 133; > end; > > procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; > var Handled: Boolean); > var > LpBuf : ^Tabuf; > LText : string; > begin > if Msg.message = MM_WOM_DONE then begin > LpBuf := Pointer(Msg.lParam); > SetWaveData(LpBuf^); > > LText := IntToStr(LpBuf[1]) + sLineBreak + IntToStr(LpBuf[3]); > MessageBox(Handle, PChar(LText), '結果', MB_ICONINFORMATION); > end; > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link