Grundsätzlich trennt man normalerweise die Oberfläche von den Daten im Programm. Das heißt, dass du intern die Werte speicherst. Zum Beispiel in einem Array. Wenn es nicht beliebig viele Spalten wären sondern diese bestimmte Zwecke haben, dann kannst du ein Array mit Records benutzen und die Daten darin korrekt bezeichnet speichern.
Im StringGrid werden diese Werte dann nur angezeigt. Das heißt die genauen Werte kannst du jederzeit aus den dahinterliegenden Daten auslesen. Eingaben des Benutzers werden dementsprechend (ggf. nach Prüfung) in die Daten eingetragen.
Wenn der Benutzer gar nix ändern können soll, dann wäre eine ListView vermutlich die bessere Wahl. (Dort könnte ein Benutzer auch etwas ändern, aber das ist im StringGrid natürlich einfacher.)
So hast du jedenfalls jederzeit die Daten bereits als Zahlenwerte in dem Array vorliegen und kannst direkt damit rechnen (ohne Stringumwandlungen). Gleichzeitig missbrauchst du damit nicht die Anzeigekomponente für die Datenspeicherung.
Nebenbei würde ich die Stunden eher mit Minuten statt 2 Nachkommastellen darstellen, oder?
