Fehler bei Progressbar-Anzeige

Begonnen von mexx, 11. Februar 2009, 09:11:42

Vorheriges Thema - Nächstes Thema

mexx

Also,

meine Progressbar funzt eigentlich korrekt.
Nur am Beginn eines Titels zeigt sie kurz einen vollen Ausschlag, als wenn der Titel zu Ende ist (s. Bild).



Allerdings nur, wenn der Titel länger als 5 Minuten ist.

Aussehen sollte es aber eigentlich so -->



Hier das Script:

Zitat// PerSecond

// Progressbar

$drawrect(10,10,$sub(%_width%,20),25,brushcolor-20-20-20 pencolor-null)

$ifgreater(%playback_time_seconds%,2,

$drawrect(10,10,$muldiv($muldiv(100,%playback_time_seconds%,%length_seconds%),$sub(%_width%,20),100),25,brushcolor-110-170-170 pencolor-null)

,)


// Gradient

$drawrect(10,10,$sub(%_width%,20),4,brushcolor-0-0-0)

$drawrect(10,13,$sub(%_width%,20),1,pencolor-0-0-0 alpha-255)

$drawrect(10,14,$sub(%_width%,20),1,pencolor-0-0-0 alpha-240)

$drawrect(10,15,$sub(%_width%,20),1,pencolor-0-0-0 alpha-225)

$drawrect(10,16,$sub(%_width%,20),1,pencolor-0-0-0 alpha-210)

$drawrect(10,17,$sub(%_width%,20),1,pencolor-0-0-0 alpha-195)

$drawrect(10,18,$sub(%_width%,20),1,pencolor-0-0-0 alpha-180)

$drawrect(10,19,$sub(%_width%,20),1,pencolor-0-0-0 alpha-165)

$drawrect(10,20,$sub(%_width%,20),1,pencolor-0-0-0 alpha-150)

$drawrect(10,21,$sub(%_width%,20),1,pencolor-0-0-0 alpha-135)

$drawrect(10,22,$sub(%_width%,20),1,pencolor-0-0-0 alpha-120)

$drawrect(10,23,$sub(%_width%,20),1,pencolor-0-0-0 alpha-105)

$drawrect(10,24,$sub(%_width%,20),1,pencolor-0-0-0 alpha-90)

$drawrect(10,25,$sub(%_width%,20),1,pencolor-0-0-0 alpha-75)

$drawrect(10,26,$sub(%_width%,20),1,pencolor-0-0-0 alpha-60)

$drawrect(10,27,$sub(%_width%,20),1,pencolor-0-0-0 alpha-45)

$drawrect(10,28,$sub(%_width%,20),1,pencolor-0-0-0 alpha-30)

$drawrect(10,29,$sub(%_width%,20),1,pencolor-0-0-0 alpha-15)

$drawrect(10,30,$sub(%_width%,20),1,pencolor-0-0-0 alpha-1)


$drawrect(10,10,$sub(%_width%,20),2,pencolor-233-233-233 alpha-210)

$drawrect(10,12,$sub(%_width%,20),2,pencolor-233-233-233 alpha-180)

$drawrect(10,14,$sub(%_width%,20),2,pencolor-233-233-233 alpha-150)

$drawrect(10,16,$sub(%_width%,20),2,pencolor-233-233-233 alpha-120)

$drawrect(10,18,$sub(%_width%,20),2,pencolor-233-233-233 alpha-90)

$drawrect(10,20,$sub(%_width%,20),2,pencolor-233-233-233 alpha-60)

$drawrect(10,22,$sub(%_width%,20),2,pencolor-233-233-233 alpha-30)


// Frame

$puts(divider.pos,12)

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$sub(%_width%,13))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$drawrect(10,10,$sub(%_width%,20),25,brushcolor-null pencolor-0-0-0)

$drawrect(11,10,$sub(%_width%,22),25,brushcolor-null pencolor-0-0-0)

$drawrect(10,11,$sub(%_width%,20),23,brushcolor-null pencolor-0-0-0)


// Dividers

$puts(divider.pos,$muldiv(1,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(2,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(3,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(4,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(5,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)



$puts(divider.pos,$muldiv(6,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(7,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(8,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(9,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)

$tab()$transition($repeat($get(divc),$get(divw)),$get(fadeend),$get(text1))$transition($repeat($get(divc),$get(divw)),$get(text1),$get(fadeend))$tab()$char(10)

$char(10)

$alignabs($sub($div(%_width%,2),40),13,80,20,center,middle)
$font(MS Sans Serif,10,bold,255-255-255)
$if(%length%,$div($mul(100,%playback_time_seconds%),%length_seconds%)$right($div($mul(10000,%playback_time_seconds%),%length_seconds%),0) '%',)

Kann mir jemand helfen?

cu
mexx

tedgo

#1
Hab das Script gerade ausprobiert und bei mir tritt der Fehler nicht auf.
Aber ich schau mir das Script mal an, wenn ich heute dazu komme (bin zur Zeit ein bisschen beschäftigt... :)).
Vielleicht kann man es irgendwie optimieren.

Mir ist aber schon aufgefallen, dass du bei der Prozentangabe ja keine Nachkommastellen haben wolltest.
Du hast aus dem String, den ich dir gepostet habe den "." entfernt und die $right()-Funktion auf "0" gesetzt.
Das ist überflüssig. Mach einfach aus:
$if(%length%,$div($mul(100,%playback_time_seconds%),%length_seconds%)$right($div($mul(10000,%playback_time_seconds%),%length_seconds%),0) '%',)
das hier:
$if(%length%,$div($mul(100,%playback_time_seconds%),%length_seconds%) '%')
Denn wenn man keine Nachkommastellen haben will, braucht man die $right()-Funktion nicht ;)

EDIT:
Gibt es eigentlich einen besonderen Grund, warum du das mit Trackinfo mod machst und nicht mit dem Panel Stack Splitter?
Denn der Panel Stack Splitter kann das auch, und zwar wesentlich einfacher.
Er ist auch stabil, bis auf die Anzeige von Bildern (da ist er nicht ganz bugfrei).
Da dein Script aber völlig ohne Bilder auskommt, wäre das doch eine Alternative.

mexx

mmmmhhhhhhhhh,

hab beim Probieren eben folgendes festgestellt:

Wenn ich in dieser Scriptzeile $ifgreater(%playback_time_seconds%,5, (4. Zeile von oben im Script) den Wert von 1 auf 5 erhöhe, ist der Fehler weg. :crazy:

Nun möchte ich aber doch schon ganz gerne wissen, was ich da verändere. ???

tedgo

Du hast Trackinfo mod gerade angewiesen, erst dann eine Progressbar zu zeichnen, wenn vom spielenden Lied bereits 5 Sekunden vergangen sind.

mexx

#4
mmmmmmmmhhhhhhhhh,

das sollte es dann ja wohl auch nicht sein. :(

Übrigens, setze ich den Wert auf 4, dann tritt der Fehler wieder auf.

tedgo

Habe jetzt den Fehler auch festgestellt.
Dürfte eigentlich nicht sein, soweit ich das Script bis jetzt überblickt habe.
Hm, ich probiere ein wenig daran herum und werde schon eine Lösung finden ;).

mexx

Zitat von: tedgo in 11. Februar 2009, 09:46:02...Hm, ich probiere ein wenig daran herum und werde schon eine Lösung finden ;).

Wäre schön. :) ;)

tedgo

Tausche die folgende Zeilen:
$ifgreater(%playback_time_seconds%,2,

$drawrect(10,10,$muldiv($muldiv(100,%playback_time_seconds%,%length_seconds%),$sub(%_width%,20),100),25,brushcolor-110-170-170 pencolor-null)

,)


durch diese aus:
$puts(progress,$muldiv(%playback_time_seconds%,$sub(%_width%,20),%length_seconds%))

$ifgreater($get(progress),0,
   $drawrect(10,10,$get(progress),25,brushcolor-110-170-170 pencolor-null)
,
)


Das ist mein alter String für die Progressbar, die ich früher in Trackinfo mod hatte und der funktioniert jedenfalls.
Bin aber noch nicht dahintergestiegen, warum deiner nicht funktioniert hat...

mexx

Jou,

so funktionierts. :crazy:

Aber vielleicht bekommst du doch noch raus, wo im geposteten Script der Fehler steckt.

THX  :top:
mexx

tedgo

#9
Das habe ich schon:

$ifgreater(%playback_time_seconds%,x,...
ist der Fehler.

Die Breite eines Elements darf nicht "0" sein, sonst wird die ganze Breite ausgefüllt (wird wohl mit %_width% gleichgesetzt).
Beim Abgleich der Funktion mit %playback_time_seconds% wird auch in den ersten Sekunden eines Liedes versucht, die Breite zu zeichnen, da die Playback Time immer größer ist als "0". Da in den ersten Sekunden aber das Ergebnis "0" herauskommt, wird der ganze Balken gezeichnet.

Gleicht man die Funktion mit der Berechnung selbst ab, wird in den ersten Sekunden erst gar kein Balken gezeichnet, solange als Ergebnis der Berechnung eine "0" herauskommt und somit nicht größer ist als "0".

(Habe ich mich klar ausgedrückt? Ich versuche immer, so genau und verständlich wie möglich zu sein, bin mir aber beim Nachlesen des Geschriebenen manchmal selbst nicht ganz darüber im Klaren, was ich damit ausdrücken will...  ::))

mexx

Naja,

begriffen hab ich das nicht :'( und werds wohl auch nicht. Also sind weitere Erklärungsversuche bei mir warscheinlich zwecklos. ;)

Zumindest hab ich kapiert (hoff ich jedenfalls), dass der String $ifgreater(%playback_time_seconds%,x,... in diesem Fall nicht geht. Und das ist doch auch schon etwas.

Dank deines alten Strings funzt es ja jetzt. :crazy:

Also THX und  :top:
mexx


tedgo

Dann probier ich mal, es anschaulich zu erklären:

Beispiel:
Länge des Liedes: 5 Min. (= %length_seconds%: 300)

Bei deiner alten Funktion sieht das dann so aus:
Wenn die abgespielte Zeit größer ist als 0, dann zeichne einen Balken mit der Breite '(100*abgespielte Zeit/300)*(Breite-20)/100', sonst nix.
Da die Playback Time immer größer ist als "0", wird also immer versucht, einen Balken zu zeichnen.
Das Ergebnis der Berechnung wäre in dem Fall aber knapp 2 Sekunden lang "0" (es gibt keine Nachkommastellen im Titleformatting).
Die Breite wäre also "0" und damit die gesamte Breite des Panels, ab der Position, die man festgelegt hat (in deinem Fall ab dem 10. Pixel), weil "0" mit %_width% gleichgesetzt wird.

Bei der "neuen" Funktion (die Berechnung ist übrigens identisch mit deiner alten, nur jeweils um die überflüssige "100" gekürzt):
Erst wenn das Ergebnis der Berechnung größer ist als "0", wird ein Balken mit der Länge des Ergebnisses der Berechnung gezeichnet, ansonsten nix.

Ich bezweifle zwar, dass das jetzt verständlicher war, aber ein Versuch war es wert ;)  ;D

mexx

d.h.

solange die Berechnung (bis 1 %) läuft (ca. 2 Sekunden) ist das Ergebnis "0" und solange wird ein Balken über die gesamte Breite gezeichnet.

Wenn es Nachkommastellen gäbe, wär das nicht der Fall, da das Ergebnis dann eigentlich sofort größer als "0" wäre.

tedgo

#13
Stimmt.
Wenn Trackinfo mod bei der Breite auch Nachkommastellen akzeptieren könnte, würde das funktionieren.
Dann bräuchten wir aber auch sowas wie eine Angabe der Playback Time in hundertstel Sekunden.

Die Prozentangabe ist allerdings nicht so starr. Sie hängt ja auch noch von der Breite des Panels ab.
Wenn dein Panel über die gesamte Breite von foobar ginge (z. B. 1280 Pixel), dann würde dein alter String möglicherweise auch funktionieren, zumindest ab der 1. Sekunde ;)

mexx

aha,

habs wohl einigermaßen kapiert. :)

Thx für deine Geduld. :top: