Hi!
Ich programmiere gerade an einen Mediaplayer und habe ein Problem.
Ich lasse über die Länge einer Datei eine Trackbar mitlaufen, das funktioniert auch.
Nur möchte ich jetzt durch verschieben des Trackbar reiters vor und zurück Spulen.
Da es nicht mit einem Trackbar onChange ereignis funktioniert wollte ich es mit einem Mousedown and up event versuchen nur gibt es das nicht. In der Delohi Hilfe steht das man KeyDown und Keyup auch die Maustasten abfragen kann, das funktioniert aber nicht.
Source:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Form1.MediaPlayer1.Mode = mpPlaying then //wenn der Player spielt soll er..
begin
Form1.TrackBar1.Max := Form1.MediaPlayer1.Length;//.. TrackbarMax auf die länge der Datei setzen ...
Form1.Trackbar1.Position := Form1.MediaPlayer1.Position;{.. und die Trackbar Position mit der des Mediaplayers gleichsetzen}
end;
end;
procedure TForm1.TrackBar1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin {Wenn die Linke Maustaste gedrückt ist (auf der Trackbar) dann soll der Mediaplayer stoppen}
if (Key=VK_LBUTTON) then
begin
Form1.MediaPlayer1.Stop;
end;
end;
procedure TForm1.TrackBar1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin {Wenn die linke Maustaste wieder losgelassen wird soll der Mediaplayer die auf der Trackbar eingestellte Position übernehmen und anschließend wieder spielen}
if (Key=VK_LBUTTON) then
begin
mediaplayer1.Position := TrackBar1.Position;
MediaPLayer1.Play;
end;
end;
Ps.: KeyPreview ist aktiviert.
Ich denke das es von der Logik her richtig ist, nur fehlt mir die Richtige Syntax.
Dieser Source bringt mir nur
Exception Error:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Form1.MediaPlayer1.Mode = mpPlaying then //wenn der Player spielt soll er..
begin
Form1.TrackBar1.Max := Form1.MediaPlayer1.Length;//.. TrackbarMax auf die länge der Datei setzen ...
Form1.Trackbar1.Position := Form1.MediaPlayer1.Position;{.. und die Trackbar Position mit der des Mediaplayers gleichsetzen}
end;
end;
procedure TForm1.Trackbar1Change(Sender: TObject);
begin
Form1.mediaplayer1.stop;
mediaplayer1.Position := TrackBar1.Position;
Form1.mediaPLayer1.play;
end;
Kann mir da bitte wer weiter helfen.
Mfg chros
[edit=chros]Delphi-Tags eingefügt. Mfg, chros[/edit]