Ian gave you enough information to do what you want.
With his code, reading of the documentation for the specified functions and a bit of experience in Delphi you should be able to work out the rest.
I will do my best with NO EXPERIENCE with Delphi.
Add a TTimer to your program this can be found in the System Tab within the Component Palette. (1)
Set the interval property of the TTimer to how often you want to check the elapsed time. I usually set it for 250 (milliseconds).
But 1000 (1 second) should be frequent enough. (1)
Create a new function to convert seconds to a time string (2):
function SecToTime(Sec: Integer): string;
H, M, S: string;
ZH, ZM, ZS: Integer;
ZH := Sec div 3600;
ZM := Sec div 60 - ZH * 60;
ZS := Sec - (ZH * 3600 + ZM * 60) ;
H := IntToStr(ZH) ;
M := IntToStr(ZM) ;
S := IntToStr(ZS) ;
Result := H + ':' + M + ':' + S;
The above function will produce an output of HH:MM:SS (adjust as you need).
In the TTimer's "OnTimer" event put the following code (3):
elapsed_bytes = BASS_ChannelGetPosition(handle, BASS_POS_BYTE);
elapsed_time = BASS_ChannelBytes2Seconds(handle, elapsed_bytes);
elapsed_time_str = SecToTime(elapsed_time);
total_bytes = BASS_ChannelGetLength(handle, BASS_POS_BYTE);
total_time = BASS_ChannelBytes2Seconds(handle, total_bytes);
total_time_str = SecToTime(total_time);
time_str = elapsed_time_str + "/" + total_time_str;
You should really get the total_time value ONCE when you first create the channel and store it somewhere as it won't change as the channel plays. But to keep the example simple I kept it in the timer event.
I hope this helps
(3) Adapted from Ian's post.