Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#5

Re: TrackBar OnMouse Event????

  Alt 18. Nov 2003, 15:50
Aus dem anderen Beitrag:
Delphi-Quellcode:
{Timer1.Interval := 300;} 
{TrackBar1.Max := MediaPlayer1.Length div 1000;} 

Procedure TForm1.Timer1Timer(Sender: TObject);
  Begin
    (* TrackBar-Position an die MediaPlayer-Position anpassen *) 
    TrackBar1.Position := MediaPlayer1.Position div 1000;
  End;

Procedure TForm1.TrackBar1Change(Sender: TObject);
  Var TBP, MPP: Integer;

  Begin
    TBP := TrackBar1.Position;
    MPP := MediaPlayer1.Position div 1000;
    (* MediaPlayer-Position an die TrackBar-Position anpassen, *
     * wenn der Unterschied grösser als 2 Sekunden ist         *)
 
    If ABS(TBP - MPP) > 2 Then MediaPlayer1.Position := TBP * 1000;
  End;
Wie du dort sehen wirst, hab ich diese Problem durch eine kleine Abrage gelöst.
If ABS(TBP - MPP) > 2 Then Dadurch wird die MediaPlayer-Position nur bei einer grösseren Änderung (> 2 Sekunden) geändert.


Alternativ währe auch der Einsatz einer zusätzlichen Variable möglich.

Delphi-Quellcode:
{Timer1.Interval := 300;} 
{TrackBar1.Max := MediaPlayer1.Length div 1000;} 

Var setzen: Boolean = True; {*}

Procedure TForm1.Timer1Timer(Sender: TObject);
  Begin
    setzen := False; {*}
    TrackBar1.Position := MediaPlayer1.Position div 1000;
    setzen := True; {*}
  End;

Procedure TForm1.TrackBar1Change(Sender: TObject);
  Var TBP, MPP: Integer;

  Begin
    If setzen Then Exit; {*}
    TBP := TrackBar1.Position;
    MPP := MediaPlayer1.Position div 1000;
    If ABS(TBP - MPP) > 2 Then MediaPlayer1.Position := TBP * 1000;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat