60 lines
2.2 KiB
Plaintext
60 lines
2.2 KiB
Plaintext
Демонстрация динамической загрузки интерпретатора
|
||
=================================================
|
||
|
||
Это демонстрационное приложение работает в Delphi 5 и 6.
|
||
Оно также может быть использовано в других версиях Delphi,
|
||
кроме 2, однако это требует незначительной модификации
|
||
исходного кода (см. условия {$IFDEF}).
|
||
|
||
Состав
|
||
------
|
||
|
||
1. MyLabel.pas - модуль с нашим компонентом;
|
||
2. MyLabelPackage.dpk - пакет с нашим компонентом
|
||
(Design-time and Run-time);
|
||
3. JvInterpreter_MyLabel.pas - модуль с адаптером для нашего
|
||
компонента к интерпретатору;
|
||
4. JvInterpreter_MyLabelPackage.dpk - пакет с адаптером
|
||
для нашего компонента к интепретатору (Run-time);
|
||
5. ScriptForm.pas/ScriptForm.dfm - форма, в которой
|
||
используется наш компонент;
|
||
6. DynamicLoad.dpr - проект, демонстрирующий
|
||
динамическую загрузку пакета с нашим компонентом
|
||
и запуск интерпретатора;
|
||
7. MainForm.pas/MainForm.dfm - модуль с формой для
|
||
тестового проекта. выполняет всю основную работу.
|
||
|
||
Сборка
|
||
------
|
||
1. Компилируем пакет MyLabelPackage.dpk, можно также
|
||
проинсталлировать его в дельфи. Добавляет компонент
|
||
TMyLabel на закладку "JVCL".
|
||
2. Компилируем пакет JvInterpreter_MyLabelPackage.dpk,
|
||
не инсталлируем.
|
||
3. Компилируем демо-проект DynamicLoad.dpr.
|
||
4. Помещаем пакеты rai5.bpl, raia5.bpl в каталог, где
|
||
находится DynamicLoad.exe.
|
||
|
||
Запуск
|
||
------
|
||
1. Запускаем DynamicLoad.exe и нажимаем на все кнопочки.
|
||
|
||
Как это работает
|
||
----------------
|
||
Вся функциональность заключается в модуле MainForm.pas.
|
||
Функция "DynamicJvInterpreterRunFormModal"
|
||
procedure DynamicJvInterpreterRunFormModal(const FileName: TFileName);
|
||
загружает пакет интерпретатора и запускает указанную форму на выполнение.
|
||
Функция LoadJvInterpreterPackage
|
||
function LoadJvInterpreterPackage(const PackageFileName: TFileName; const UnitName: String): HModule;
|
||
загружает дополнительные пакеты.
|
||
Перед запуском нашей тестовой формы (ScriptForm.pas/ScriptForm.dfm)
|
||
мы сначала используя функцию "LoadJvInterpreterPackage" загружаем
|
||
наш пакет с нашим классом и регистрируем его в глобальном адаптере.
|
||
|
||
Для изучения более подробного устройства воспользуйтесь
|
||
исходными текстами.
|
||
|
||
Andrei Prygounkov, 21 сентября 2001 г.
|
||
a.prygounkov@gmx.de
|