Советы по Delphi

       

Что рекомендует Borland по поводу


Что рекомендует 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 Registerbegin{Здесь расположен ваш код регистрации}end;
end.
[000923]


Содержание раздела