Я разрабатываю 64-битное приложение в Delphi, и я разделил проект на две папки. Один для компонентов, которые я буду использовать для графического интерфейса, а другой для не визуальных объектов и основного программного проекта. Папки разделены, так как я хотел бы использовать некоторые компоненты в других проектах. Папка «Компоненты», очевидно, находится в пути к библиотеке.Delphi - доступ к свойствам из компонента во внешний блок
Теперь мне нужно разработать визуальный компонент, который должен прочитать некоторые свойства из блока (называемого теперь BaseUnit), который находится в главной папке. Но BaseUnit использует некоторый код в 64-битном asm, который невозможно использовать для Компонентов. Каков наилучший объектно-ориентированный подход, чтобы преодолеть эту проблему?
Я использую некоторые упрощенные версии объектов, которые должны быть прочитаны, чтобы компонент мог читать свойства из BaseUnit, которые мне нужны. Я уже это в прошлом, и это работает, но я не знаю, есть ли более праведный способ. Можно было бы создать базовый класс, совместимый как с компонентом, так и с главной программой, но я до сих пор не знаю, приложит ли польза усилия по реорганизации дизайна BaseUnit.
Я надеюсь, что я объяснил свою проблему в understandeable образом^_^ Спасибо заранее, Paolo
EDIT: Спасибо всем большое за ответы, компилятор IFDEF подход, по существу, самый простой способ, но ... Я думаю, что я ищу способ позволить моим компонентам существовать во время разработки, не зависимо от основного проекта. Это основной проект, который связывает их с невизуальной частью. Это потому, что я хотел бы создать графический интерфейс из проекта void и просто подключить свойства компонентов к объектам «движка», над которыми я работаю (я разрабатываю аудио-приложение).
Все эти предложения требуют, чтобы основная папка находилась на пути к проекту «Компоненты». Теперь я пытаюсь поместить фиктивные элементы в папку «Компоненты», которые являются копиями BaseUnit, с теми свойствами, которые мне нужно читать. Таким образом, я могу связать во время выполнения компоненты с реальным BaseUnit.
Что вы имеете в виду: «Но BaseUnit использует код в 64-битном ассемблере, что это impossibile для компонентов, чтобы использовать» ? Какую ошибку вы получили? – Marcodor
Что означает Paolo, так это то, что IDE 32 бит, а пакет времени разработки не может иметь 64-битный ASM. –
Я удалил свой ответ, потому что теперь я понятия не имею, о чем ваш вопрос. –