Похоже здесь всё дело в повторах нажатия клавиши - даже при отпускании из буфера клавы идёт повтор на запуск, попробуйте вот так
Код:
var flg: boolean = true;
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if GetKeyState(VK_LEFT) <> 0 then flg:= true;
end;
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if flg then
begin
MediaPlayer1.FileName:='1.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Button1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
flg:= false;
MediaPlayer1.Stop;
end;
не проверял, нечем, но так должно сработать
З.Ы. Косяк только сейчас заметил -
вместо
Код:
if GetKeyState(VK_LEFT) <> 0 then flg:= true;
нужно
Код:
if Key = VK_LEFT then flg:= true;