Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Работа с пакетами(package)   Найти похожие ветки 

 
Megabyte ©   (2006-10-30 17:37) [0]

Подкиньте ссылок, где описывается работа с пакетами.
Перерыл поиском и наш сайт, а DelphiKingdom, нашел одну статью, но слишком громозкую для первоначального понимания(взаимодействие через интерфейсы и т.д.).
Мне не требуется пока ничего особенного, просто подгружать пакет и использовать конкретный метод.
Загружаю пакет через LoadLibrary. Что дальше делать, как обратиться к конкретному методу, не знаю?
В SysUtils посмотрел все методы работы с пакетами. Там есть метод: GetPackageInfo(Module: HMODULE; Param: Pointer; var Flags: Integer; InfoProc: TPackageInfoProc);
//Но я не знаю, что обозначает послений параметр и как им пользоваться?


 
Игорь Шевченко ©   (2006-10-30 17:45) [1]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=274 - это попроще и без интерфейсов


 
Ketmar ©   (2006-10-30 17:46) [2]

вот же любит народ всё делать через не то место...
http://www.softwarer.ru/packages.html


 
Megabyte ©   (2006-10-31 10:42) [3]


> http://www.delphikingdom.com/asp/viewitem.asp?catalogid=274 - это попроще и без интерфейсов

Я, честно, не понял такую вещь!
Я объявляю переменную такого типа класса, кот. описан в одном из модулей пакета. Исходя из примера, требуется добавить в uses раздела implemantation ссылки на модули(unit) из пакета. Я могу создать экземпляр класса независимо от того, применяю ли я функцию LoadPackage или нет.
В чем фишка-то?
Я думал, что мне будет недоступно создание класса и его использование без подгрузки плагина.
implementation
uses dmod, uRepairState; //2-й - это модуль, где описан класс
procedure Tfrm_main.CreateOtchetState(aOtchetDir : string);
var
 filename : TFileName;
 FPackageHandle : HMODULE;
...
 OtchetState : TOtchetState; //переменная класса отчета
begin
 {filename := ExtractFilePath(Application.ExeName) + "\state.bpl";
 FPackageHandle := LoadPackage(FileName);}
...
 OtchetState := TOtchetState.Create;
 showmessage(OtchetState.test); //метод test выдает строку
...
end;

Т.е. без кода в фигурных скобках я так же могу использовать класс. Для чего тогда требуется процесс загрузки пакета с помощью LoadPackage? Вопрос м.б. и глупый, но просто хочется понять до конца.
Во 2-й ссылке было рассказано про различные варианты загрузки(статическая, динамическая), м.б. как-то с этим связано...


 
Megabyte ©   (2006-10-31 13:02) [4]

У меня есть базовый класс-отчет(TSimpleOtchet). В нем есть свойство property SelectSQL : TStrings read fSelectSQL write SetSelectSQL;
Загрузка пакета и сам вызов методов проходит нормально.
Но вот если пытаюсь присвоить свойству значение(вызываю в приложении метод(да просто метод test) наследуемого класса-отчета(TStateOtchet), в кот. прямо присваиваю значение) : SelectSQL.Add("select * from v_otchet_state");, то выдает исключение EAbstractError(?), хотя абстрактных методов у меня вообще нет. Подскажите плз...
Так выглядит процедура установки свойства: procedure TSimpleOtchet.SetSelectSQL(value : TStrings);
begin
 FSelectSQL.Assign(value);
end;



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
1-1158578280
Николай_Москва
2006-09-18 15:18
2006.11.19
Нехарактерная проблема с MDI на некоторых ПК


2-1162396371
Busik
2006-11-01 18:52
2006.11.19
Как связать эти две программы,


2-1162293414
Alex_C
2006-10-31 14:16
2006.11.19
Какое событие происходит при изменении текста в мемо?


1-1160046544
WebSqlNeederr
2006-10-05 15:09
2006.11.19
Как обрабатывать текст в Exel?


15-1162028231
Leonid Troyanovsky
2006-10-28 13:37
2006.11.19
Любителям Forms in dll посвящяется