Um Rundungsfehler zu vermeiden, würde ich mit Sekunden und Frames rechnen. Wenn die maximale Anzahl der FPS überschritten wird, muss der Übertrag berücksichtigt werden.
Diese Lösung sollte mit allen Timecodes funktionieren die ganzzahlige fps haben (also z.B. nicht 23.976fps). Man muss lediglich die Konstante fps anpassen.
Interessanter Code, Danke dafür.
Falls jemand braucht, für ältere Delphi Versionen die noch kein SplitString() haben, im Anhang ist angepasstes Projekt.
Ps: TStrings mit ExtractStrings() habe ich verwendet.