Цитата:
Сообщение от 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 прекратить воспроизведение трека, а компонент не понимает что от него хотят и выдает ерорр =((