>>373
やってみたのですけど駄目でした。
原因を追及する為に簡略化しているのですが、

begin
 while j<64000 do           ←2
 begin
  if not SetVolume(0, 0, j) then
   ShowMessage('ボリューム設定に失敗しました');
   Mediaplayer1.Notify:=True;
   Mediaplayer1.play;
   Application.ProcessMessages; ←1
   j:=j+1000;
 end;
end;

ボリュームを1回演奏するごとに少しづつ上げていくプログラムなのですが、
jを広域変数にして少しづつ上げていきたいのですけど、1のあと下の行を実行せず
に2に戻ってしまいます。
演奏終了を確実に待てる他の方法をどなたかご存じ無いでしょうか?