Ich dachte, ich kann mir sowas sparen, wenn ich schon alle Daten in der Tabelle habe.
Du machst dir das Leben aber unnötig schwer, wenn du direkt mit den visuellen Komponenten arbeitest. Wenn du deine Oberfläche mal anpasst, musst du ggf. dein halbes Programm anpassen. Wenn du die Logik dahinter mit den Daten unabhängig von den konkreten visuellen Komponenten umsetzt, brauchst du z.B. bei einem Wechsel von TStringList auf TListView nur die Oberflächenlogik anpassen, aber der Rest des Programms bleibt gleich.
Oder du brauchst mal eine Kommandozeilenversion:
Kein Problem, dann nutzt du deine Daten und Logik einfach von dort aus und entfernst die Fenster.
Bei kleinen Programmen muss man diese Trennung ja nicht so formal machen, wie es verschiedene Pattern vorgeben. Es reicht ja schon, wenn man in den Units mit den Formularen nur das macht, was auch direkt mit diesen Formularen zu tun hat. (Und alles andere in eigene Units legt, die die Oberflächenunits nicht kennen.)
Ist ja doof, wenn die nur zum Angucken ist und sonst keinen praktischen Nutzen hat.
Der praktische Nutzen besteht ja gerade in der visuellen Darstellung und der visuellen Eingabe. Daher sind es ja auch
visuelle Komponenten und keine
Datencontainer.