Идёт загрузка страницы...

htp://aptem.net.ru





Совместное использование Delphi 1.0 и 2.0

Что рекомендует Borland по поводу организации дискового пространства Delphi версии 1.0 и 2.0 для использования обоими версиями без проблем одного и того же исходного кода?

Я ничего не слышал по поводу рекомендаций Borland относительно организации дискового пространства, но я лично для задания различного поведения использую ключи условной компиляции в одних и тех же исходных файлах. Если имеется ну очень много различий, я разделяю код на два отдельных модуля, а в списке использованных модулей также управляю подключением модулей с помощью этих ключей.

Примерно такую же схему я использую и при работе с компонентами: модули регистрации я размещаю в различных модулях, например, XxxReg.pas для Delphi 1.0 и XxxReg32.pas для Delphi 2.0. Формат файлов ресурсов в WIN32 также другой, что приводит к необходимости иметь соответствующие XxxReg.dcr и XxxReg32.dcr, содержащие иконки для палитры компонентов. В качестве альтернативы вместо двух DCR-файлов возможно использование единственного файла Reg.pas и двух RES-файлов, и директивы {$R ...}, обернутой в директивы условной компиляции, управляющие выбором загрузки одного из файлов. (Смотрите ниже дополнение от Dan Miser).

При переключении с Delphi 2.0 на 1.0, вы должны или сделать "build all", или создать bat-файл для удаления всех DCU файлов.

Наконец, вы можете задавать различные выходные (output) каталоги для каждого проекта в Delphi 1 и 2. С помощью данного способа вы можете хранить все DCU и EXE файлы в отдельных каталогах. Для этой цели в каталоге приложения я использую два подкаталога с именами 16Bit и 32Bit.

- Mike Scott.

Дополнение от Dan Miser:

В момент регистрации Delphi компонента в палитре компонентов, она ищет соответствуюшие файлы DCR (имеющие то же имя, что и модуль регистрации). Как мы знаем, затем происходит линковка. Поскольку Delphi не находит DCR-файл с подходящим именем, в нормальной ситуации он должен использовать иконку по умолчанию. Тем не менее, связывание файла ресурсов посредством директивы $R позволяет Delphi указать, что имеется иконка с тем же именем, что и у регистрируемого класса, таким образом Delphi удается установить связь между иконкой и компонентом.

Образец списка файлов компонента:

XXXREG.R16 16-битный DCR файл
XXXREG.R32 32-битный DCR файл
XXXREG.PAS Модуль регистрации компонента


   
unit XXXREG.PAS

interface

uses Classes;

procedure Register;

implementation

{$IFDEF WIN32}
{$R XXXREG.R32}
{$ELSE}
{$R XXXREG.R16}
{$ENDIF}

procedure Register
begin
{Здесь расположен ваш код регистрации}
end;

end.

[000923]