Я думаю, вам нужно определить;
а) сколько кода связано с бизнес-логикой, манипулированием данными (базой данных) и такими вещами, как собственные файловые структуры, математическая обработка и т. Д.? Это вещи, которые могут быть в значительной степени «как есть», потому что более вероятно, что они будут написаны на «паскале» с гораздо меньшими, очевидными элементами OWL / BP7. Например, когда я делал это с приложением, у меня был ряд модулей, которые занимались загрузкой / сохранением проприетарных файлов, подсчетом пасхи, подсчётом математики в массивах и т. Д. - всё это перешло от BP7 к Delphi (1) почти без изменений.
b) сколько кода связано с графическим интерфейсом (и ничем иным) - обработчиками цикла сообщений, конструкторами элементов диалога, свойствами элементов управления и т. Д. Этот материал потребует много работы для переноса в Delphi, и если вы Я могу найти кого-то с хорошей линией в .RES ->. DFM (или подобном), я думаю, что вы будете смотреть на создание этого бита с нуля. Нет ничего плохого, потому что, если это 16-битное приложение для Windows, вы, вероятно, захотите воспользоваться возможностью, чтобы хотя бы сделать его более «современным» в любом случае. Я думаю, что это будет самая трудоемкая часть проекта.
в) сколько кода использует вещи, которые, как вы знаете, могут быть выполнены по-другому в Delphi, но это сработало бы так, как сейчас в Паскале? Вот где смысл @ BloodySmartie о переходе на более старую версию Delphi имеет для меня смысл. Вы должны иметь возможность портировать этот проект на что-то вроде Delphi 5/7, внося очевидные (и хорошо понятые) изменения в такие вещи, как манипуляции со строками. Чем больше этих вещей вы можете оставить не портированными, тем лучше, на мой взгляд. Получите что-то, что работает и с которым вы проверяете базовое поведение, а затем приступайте к процессу рефакторинга / уточнения, чтобы максимально использовать Delphi, когда ресурсы позволяют это. У вас могут быть (как и я) массивы указателей в BP7, где каждый указатель обращается к массиву указателей, которые в конечном итоге приводят к объекту - так мы обошли ограничения памяти в 16-битном мире Windows. Когда я впервые портировал свое приложение, эти массивы указателей на массивы указателей все еще работали в Delphi, и я оставил их в покое, пока у меня не было времени сделать что-то более похожее на Delphi со структурами.
Но прежде чем делать все это - зачем вы портируете приложение? Если вы портируете его, потому что в любом случае собираетесь внести разумное количество изменений в функциональные возможности приложения, тогда, возможно, настало время переписать приложение. Когда вы переписываете в Delphi, вы все равно сможете использовать фрагменты функций и процедур, которые в любом случае основаны на бизнес-правилах, так что это не обязательно полное и полное переписывание с нуля.