Einzelnen Beitrag anzeigen

chros

Registriert seit: 17. Nov 2003
27 Beiträge
 
#1

TrackBar OnMouse Event????

  Alt 17. Nov 2003, 23:53
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]
  Mit Zitat antworten Zitat