Показать сообщение отдельно
  #4  
Старый 06.01.2014, 01:34
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Похоже здесь всё дело в повторах нажатия клавиши - даже при отпускании из буфера клавы идёт повтор на запуск, попробуйте вот так
Код:
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;
Ответить с цитированием