Danke arbu man aber ich habe es nun gelöst, ohne MouseDown und MouseUp. Ich habe, nach Empfehlung von Wishmaster, meine Funktion so geändert, das ich nur noch Informationen lese:
Delphi-Quellcode:
function TForm1.GetSoundInfo(Info: String): Int64;
var
MilliSec: Integer;
FloatPos: Float;
begin
If Info = 'GetLength' then FloatPos:=BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel))
Else If Info = 'GetPosition' then FloatPos:=BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetPosition(Channel));
MilliSec:=Trunc(1000 * FloatPos);
If MilliSec < 0 then MilliSec:=0;
Result:=MilliSec;
end;
Für die Trackbar habe ich nun folgenden Code aufgenommen:
Delphi-Quellcode:
procedure TForm1.TrackBarChange(Sender: TObject);
var
TBP, BGP: Integer; //TrackBarPosition BassGetPosition
begin
TBP:=TrackBar.Position;
BGP:=GetSoundInfo('GetPosition');
If ABS(TBP - BGP) > 1000 then BASS_ChannelSetPosition(Channel, BASS_ChannelSeconds2Bytes(Channel, TrackBar.Position div 1000));
end;
Außerdem hatte ich selber einen Fehler, ich habe nicht durch 1000 dividiert, was aber bei mir wichtig ist.
Danke an alle.
Gruß
Mazel