Интернет-решения от доктора Боба


ActiveForms


Дельфи 2.x не может создавать ActiveX органы управления. В Дельфи 3 это было исправлено и названо One-Step-ActiveX. Вначале показалось, что это было изумительное свойство Дельфи 3. Но после детального ознакомления, оказалось, что можете включать только компоненты наследники от TWinControl внутрь ActiveX, и вы не можете делать ActiveX органы, которые могут подключать другие компоненты, такие как TTable и TQuery компоненты, котрые подключаются к TDataSource, и все другие data-aware компоненты). На практике это означает, что изумительное нововведение оказалось в действительности пшиком, не позволяя делать серьезные Интернет приложения.

Конечно мы можем обойти эту проблему, разместив все нужные компоненты в один "контейнер" и преобразовать этот контейнер в один большой ActiveX контрол. Конечно, наилучшим контейнером мог бы быть TForm (так что мы могли бы разрабатывать привычным образом), и имя этому было бы ActiveForm. ActiveForms мог бы интерпритироваться как обычная форма, которая может содержать любые компоненты, включая TTable, TDataSource, TDBGrid, TDBNavigator, и т.д. и они были бы хорошим потенциалом ActiveX для Дельфи программиста.

Подобно любому ActiveX контролу, ActiveForm требуется Win32 платформа для исполнения, но это должна быть Win32 платформа, так как ActiveForm это обычный ActiveX орган, и может быть использован внутри других средств разработки, поддерживающих ActiveX, таких как C++Builder, Visual Basic, PowerBuilder, и также Internet Explorer. Последнее означает, что мы можем использовать ActiveForm для распространения Интернет приложений в Интернет или Интранет.

Простой откомпилированный ActiveForm проект может оказаться в .OCX размером свыше 300 Kb, даже если были использованы совсем немного контролов и всего лишь несколько строк кода. Компиляция с пакетами, VCLx0 (стандарт) или VCLDBx0 (data-aware) может уменьшить этот размер до 50 Kb, более мене функциональные ActiveForm будуь порядка 100 Kb. Пакеты значительно увеличивают размер (VCLx0 пакет это более мегабайта), но они должны ставиться у клиента только один раз, и могут быть уже предустановленны у клиента, что позволяет уменьшить время загрузки.




Начало  Назад  Вперед



Книжный магазин