А почему каждый раз заново переписываете, да ещё и с нуля? Что алгоритм работы программы меняется, или она "спроектирована" так, что нельзя поменять отдельный модуль, не переписав все остальные?
С нуля не каждый раз, а три раза.
Потому что первая версия была написана в 2002 году на delphi 7 и база была на файлах dbf.
Вторая версия с нуля была многопользовательская, написана на delphi 7 и база была mysql. Содержала уже сложную базу, учитывающую все ньюансы ведения секретариата соревнований: от взвешивания, до ранжирования поединков.
Далее были улучшения. Довольно длительное время хватало того, что есть.
Потом к кёруги добавилось пхумсэ и правила немного поменялись. Технологии и инструменты к этому времени шагнули вперёд. Принял решение переписывать. Delphi xe3, mysql, ehlib, devart.
Потом уже, когда понадобилось сделать судейские пульты и подключить к системе секретариата, было принято решение перейти на lazarus.
Переписано всё на lazarus. Но под винды. Сейчас под линукс.