Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Прочие Программы    >>    downgrad
   
 
 Как перевести программу с TP6 на TP5 (downgrade)   Виктор Вагнер 18.06.1994

Околокомпьютерная публицистика о преимуществах использования TP5.5 вместо TP6.0



2k 
 

Околокомпьютерная публицистика DOWNGRADE или о том, как перевести программу с Turbo Pascal 6.0 на Turbo Pascal 5.5 Turbo Pascal 5.5 не умер. Он остается самым удобным компилятором для XT, особенно без жесткого диска, так как не имеет оверлеев. А таких машин у нас в стране много. Между прочим, Borland это прекрасно понимает и версия 5.5 у нас сейчас продается. Но, увы, все библиотеки сейчас как правило ориентированы на версии 6 и 7. Особенно это обидно в отношении модуля OBJECTS из Turbo Vision, который содержит такие полезные объекты, как TRect, TCollection, TStream. Увы, модуль OBJECTS, имеющийся среди примеров к версии 5.5 его не заменяет. Однако, по возможностям Pascal 5.5 практически не уступает 6.0 - удобства только меньше. Например вместо встроенного ассемблера придется пользоваться внешним. А достаточно простой и легко алгоритмизируемый способ перевода текстов c Turbo Pascal 6.0 на Turbo Pascal 5.5 существует. В исходных текстах Turbo Vision никогда не используется оператор asm, а только процедуры и функции с модификатором assembler. Их нужно выделить в отдельный файл и слегка адаптировать синтаксис, чтобы откомпилировать ассемблером. Кроме того, нужно удалить из всех описаний объектов ключевое слово private если оно есть и переместить все private поля к остальным, чтобы они располагались перед первым методом. И последнее - все типизированные константы-указатели, не равные Nil объявить как переменные (или как nil, если они компоненты какой то структуры)и в начало раздела инициализации вписать присваивание им нужных значений. Все это можно легко реализовать программно, хотя ради одного модуля objects автору было лень это делать. Если же кто соберется писать такую программу, то не исключено, что она найдет своих пользователей, тем более, если сделать ее универсальной (7.0 -> 6.0, 6.0 ->5.5 , 7.0 ->5.5) Подробности переноса ассемблерных процедур 1. замените в заголовке процедуры assembler на external 2. создайте ассемблернй файл, содержащий в начале MODEL TPASCAL LOCALS @ Описания всех структур, компоненты которых используются процедурой и всех глобальных переменных (как EXTRN) О