![]() |
Bass.dll und TrackBar
Hi,
ich mache gerade für die neue Version meines Players die TrackBar. Ich habe eine Art "Endlos-Rekursion": - Abspielen - Passe die Position mit Timer an (Teil 1 der Rekursion) - Wenn Change, dann passe an (Teil 2 der Rekursion) Dadurch stockt es. Wie kann ich das verhindern ? Hier der Code:
Delphi-Quellcode:
property Position: Longword read GetPosition write SetPosition;
procedure TfrmMain.SetPosition(Position: Longword); var pos: Longword; begin if Chan = 0 then Exit; if Modus = moSamples then BASS_ChannelSetPosition(Chan, BASS_ChannelSeconds2Bytes(Chan, position)); if Modus = moMusik then begin startmodplaytime := timegettime - (position * 1000); pos := round(position * (SpeedinProzent / 100)) or $FFFF0000; BASS_ChannelSetPosition(Chan, pos); end; end; function TfrmMain.GetPosition: Longword; var uptime: integer; begin Result := 0; if Chan = 0 then Exit; if Modus = moSamples then Result := round(BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetPosition(Chan))); if Modus = moMusik then begin uptime := timegettime; Result := (uptime - startmodplaytime) div 1000; end; end; procedure TfrmMain.tb1Change(Sender: TObject); begin if BASS_ChannelIsActive(chan) = BASS_ACTIVE_PLAYING then begin Position := tb1.Position; end; end; procedure TfrmMain.tbTimer(Sender: TObject); var sectime, trackpos : Integer; str:string; begin if BASS_ChannelIsActive(chan) = BASS_ACTIVE_PLAYING then begin tb1.Position := Position; sectime := trunc(BASS_ChannelBytes2Seconds(chan, BASS_ChannelGetPosition(chan))); str := ''; if (sectime mod 60 < 10) then str := '0'; str := str+inttostr(sectime mod 60); str := inttostr(sectime div 60)+':'+str; tbtime.Caption := str; end; end; |
Re: Bass.dll und TrackBar
Keiner eine Idee ? :(
|
Re: Bass.dll und TrackBar
Damit man die trackbar problemlos verschieben kann musst du bei trackbar.onmousedown den timer deaktivieren und bei mouseup den timer wieder aktivieren und die position des tracks in der bass.dll zu weisen.
|
Re: Bass.dll und TrackBar
Ich habe da kein MouseDown :gruebel:
Oder gibt es da Komponenten ? |
Re: Bass.dll und TrackBar
Immer wieder hilfreich JVCL - Die trackbar kompo hat das und noch viel mehr...
|
Re: Bass.dll und TrackBar
Gibt es da noch andere ? Die JVCL-Komponenten machen mir gerade ziemliche Schwierigkeiten.
|
Re: Bass.dll und TrackBar
Danke. Jetzt läuft sie endlich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz