Безопасно ли использовать только блоки данных и системы для создания многоплатформенных

Начиная с XE2, модули Delphi ограничены областью действия.

Имена областей действия

Имена модулей

Правильно ли будет сказать, что если я буду использовать только модули с областью действия System и Data, мой код будет мультиплатформенным и скомпилирован как для целей Mac, так и для Windows?

а остальные ссылки на Vcl, Winapi и Posix должны регулироваться символами платформы условной компиляции?


person Gad D Lord    schedule 23.12.2011    source источник
comment
Ну и твой код тоже. Вы должны быть уверены, что это тоже x-plat!   -  person David Heffernan    schedule 24.12.2011


Ответы (1)


Data - вообще нет. Например, Data.DBXMsSQL (драйвер SQL Server dbExpress) поддерживается только в Windows. Также System и Data "корневые" области могут иметь Win подобласть, поддерживаемую только в Windows. Например, Data.Win.ADODB (dbGo) или System.Win.Registry (реестр Windows). Кроме того, System и Data являются кроссплатформенными. В дополнение к Data объем DataSnap является кроссплатформенным.

Vcl, Winapi и Posix вы можете IFDEF. Другим вариантом является создание и использование модулей приложения для конкретной платформы и их IFDEF в uses.

person da-soft    schedule 25.12.2011