Показать сообщение отдельно
  #5  
Старый 06.01.2014, 02:06
Аватар для casperock
casperock casperock вне форума
Прохожий
 
Регистрация: 23.09.2010
Адрес: Україна, Єнакієве
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Похоже здесь всё дело в повторах нажатия клавиши - даже при отпускании из буфера клавы идёт повтор на запуск, попробуйте вот так
Код:
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;
не проверял, нечем, но так должно сработать
Спасибо, попробовал. К сожалению не подошло, с мышки все работает отлично. А вот если зажать любую стрелочку на клавиатуре во время работы программы, никаких действий не происходит. А как только отпускаешь зажатую стрелочку - вылазит ошибка "No MCI device open". Как я понимаю, то что я отпустил кнопку программа видит и реагирует вот так:
Код:
procedure TForm1.Button1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
flg:= false;
MediaPlayer1.Stop;
end;
Но вылазит ошибка, т.к. программа почему-то не понимает когда я нажимаю клавишу, но отлично понимает когда я её отпускаю и соответственно дает команду компоненту TMediaPlayer прекратить воспроизведение трека, а компонент не понимает что от него хотят и выдает ерорр =((
__________________
"Если бы выборы и голосование приводили к положительному результату и радующим население переменам, их давно уже объявили бы противозаконными!"
Лайэм Галлахер
Ответить с цитированием