|
Тема
|
"plugin-based" application
|
|
Автор | longy (Нерегистриран) |
Публикувано | 27.04.07 14:38 |
|
Здравейте,
опитвам се да направя нещо като "plugin-based" приложение.
С dll-чета се получи прилично, но реших да пробвам с packages (bpl)
в съответния "plugin" (bpl) имам формички, които искам да ползвам от главната програмка.
Както четох в разни туториали опитах се в initizalization на пакета да правя RegisterClass(TFormClass) и после в главната програмка след като LoadPackage(...) ми зареди успешно пакета да ползвам формите с GetClass(ClassName) или FindClass(...), но нещо не ги намира
Чудя се какво пропускам ?
Заб.:
формичките са наследници на TTntForm, заради unicode-supporta в TNT компонентите.
Имате ли опит с "plugin-based" програмки и какъв според вас е добрия подход при такива ?
dll, bpl, нещо друго ?
| |
Тема
|
P.S:
[re: longy]
|
|
Автор | longy (Нерегистриран) |
Публикувано | 27.04.07 14:41 |
|
...като казах unicode-support - нещо по-добро (free) от TNT да сте намирали ?
| |
|
И пакетите и приложението ти е добре да са компилирани с run-time packages. Това така ли е?
| |
Тема
|
Re: "plugin-based" application
[re: longy]
|
|
Автор |
Beco_ (bluser) |
Публикувано | 27.04.07 21:25 |
|
Никога не съм правил BPL, но със сигурност знам, че това е борландския вариант за отделен модул с UI. Както се казва - малко, но от сърце ...
| |
Тема
|
Re: "plugin-based" application
[re: longy]
|
|
Автор |
crusaderman (непознат
) |
Публикувано | 29.04.07 00:39 |
|
Според дебелите книги, когато имаме форми е по-добре да се използват runtime packаges, т.е. bpl. Ако тези форми са mdichild е наложително, защото при моите проби да вкарам такива форми в длл(обикновен), ми се губи "фокуса" при отделни компоненти, т.е компонентите не се държат "както трябва". Вярно, това е борланска дивотия подобие на библиотека(длл), но е необходима. В www.torry.ru има примери как се прави пакет и как се използва.
Потърси в нета по този въпрос. Мисля,че в Мастеринг Делфи 6(книга) е описан този подход.
| |
Тема
|
Re: Run time packages
[re: andrew_nikoloff]
|
|
Автор | longy (Нерегистриран) |
Публикувано | 02.05.07 18:40 |
|
Пробвах bpl-тата - причината за предишния ми проблем беше наистина беше "runtime packages" - 10x :)
След това всичко изглеждаше добре, даже супер, докато ситгнах до проблеми от типа "Cannot load package 'PackageA' It contains unit 'UnitName' which is also contained in package 'PackageB'" и след като се борих като прасе с тиква накрая се отказах.
Причината да пробвам с bpl-та беше, че с dll-ите имах проблем с Application обекта - различен за главната програмка и за dll-те - и от това произлизаха големи мазни с фокуса и т.н.
Но след като не успях да се преборя с bpl-тата се разрових и се оказа, че ако при използване на dll-и се използва "build with runtime packages" тогава Application обекта е същия и нещата изглеждат доста добре
| |
|
Ами то точно това за Application-а е същината на run-time packages
Айде успех!
| |
Тема
|
Re: Run time packages
[re: longy]
|
|
Автор |
CTEHATA (BAPOCAH) |
Публикувано | 03.05.07 17:10 |
|
Ще трябва да си изградиш идея как да разделиш нещата. Така или иначе не искаш един и същи код във всеки бпл, нали?
Класически метод:
Правиш пакет, който включва "базовата част" на приложението.
Ползваш този пакет във главната програма (задължителна стъпка!) и във всеки от плъгините.
Докато си изчистиш идеята ще преправиш пакета няколко пъти, но си струва, предвид крайния ефект :)
| |
Тема
|
Re: "plugin-based" application
[re: longy]
|
|
Автор |
crusaderman (непознат
) |
Публикувано | 03.05.07 20:50 |
|
Много лесно се работи с пакети(май не си чел много по-въпроса). Но не съм съгласен, че когато използваш длл и имаш отметката(от главното меню) с"build with runtime packages" обекта Application e същия и нещата изглеждат добре. Те са добре, но до даден момент. За да бъдат наистина добре, трябва да си направиш т.н. "синхронизираща"(не е най- точното наименование) процедура, т.е трябва да синхронизираш Aplication обекта и обекта от длл. При пакетите, тази функция "почти" не съществува. Просто си инсталираш пакета и пишеш 2-3 реда код и всичко е наред.
Ако имаме само функции, процедури и т.н се използват длл, но ако имаме форми - пакети.
| |
Тема
|
Re: "plugin-based" application
[re: crusaderman]
|
|
Автор | longy (Нерегистриран) |
Публикувано | 10.05.07 09:52 |
|
Какво имаш предвид с "до даден момент" ?
просто в случаен момент престава да работи или когато приложението стане по-сложно вече престава да работи ?
| |
|
|
|
|