![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форма из dll [D7, XP]
Дмитрий2 © (2010-09-02 20:54:00)Как загрузить форму из dll?
Leonid Troyanovsky (2010-09-05 09:53:00) [1]
> Dennis I. Komarov © (03.09.10 17:53) [28]
> Конкретно, что в данном коде "страшного"?
Посмотри, например, нет ли утечки для твоей версии дельфи.
http://groups.google.com/group/fido7.ru.delphi/msg/8de6822d04bffa9d
--
Regards, LVT.
Игорь Шевченко (2010-09-03 18:09:00) [2]
> Но, все равно, в ресурсных длл есть и кое-что полезное.
в ресурсных DLL дофига полезного
Dennis I. Komarov (2010-09-03 17:53:00) [3]
> Да, и создать диалог на WinAPI, который будет
> компактен, а главное - работоспособен хоть
> в длл, хоть в потоке, хоть в сях, хоть в вба -
> вовсе не бином Ньютона.
Ну, мы вроде не об этом...
> VCL неявно инициализирует кучу всякого, для библиотеки
> это может быть совсем плохо.
Конкретно, что в данном коде "страшного"?
Leonid Troyanovsky (2010-09-03 17:27:00) [4]
> Игорь Шевченко © (03.09.10 17:21) [26]
> фиговую они парадигму сделали, если честно
Вовремя, IMHO, не сумели разглядеть генеральную линию,
пришлось извратиться.
Но, все равно, в ресурсных длл есть и кое-что полезное.
--
Regards, LVT.
Игорь Шевченко (2010-09-03 17:21:00) [5]
> по борландовской
> парадигме локализации дфм форм живут в ресурсной длл
фиговую они парадигму сделали, если честно
Leonid Troyanovsky (2010-09-03 17:16:00) [6]
> Dennis I. Komarov © (03.09.10 17:06) [24]
> Т.е. вот такое право на жизнь в длл не имеет?
В нормальной длл - не имеет, см. выше.
Да, и создать диалог на WinAPI, который будет
компактен, а главное - работоспособен хоть
в длл, хоть в потоке, хоть в сях, хоть в вба -
вовсе не бином Ньютона.
Кста, не все длл одинаково полезны, по борландовской
парадигме локализации дфм форм живут в ресурсной длл.
--
Regards, LVT.
Dennis I. Komarov (2010-09-03 17:06:00) [7]
function ShowLoginForm;
begin
Result:=false;
Application.Handle:= AHandle;
with TFormLogin.Create(Application) do try
if ShowModal = mrOk then begin
.....
Result:=true;
end;
finally
Free;
end;
end;
Т.е. вот такое право на жизнь в длл не имеет?
Leonid Troyanovsky (2010-09-03 16:37:00) [8]
> Dennis I. Komarov © (03.09.10 14:04) [19]
> С этого момента, поподробнее? Что есть нормальная работа
> с формами?
VCL неявно инициализирует кучу всякого, для библиотеки
это может быть совсем плохо.
ИШ как-то рассказывал про грабли с инициализацией variants,
ЕМНИП, похожее мне тоже встречалось.
Как должна быть устроена нормальная длл, я как тут ссылался
на ms best practices. Легко заметить, что VCL туда не пролезет.
Ну, и как бы правильно не была написаная dll, от hell оно не спасет.
--
Regards, LVT.
Игорь Шевченко (2010-09-03 16:22:00) [9]
> Чего там сложного: http, ftp, DHL :)
не запутаться, кому что
Leonid Troyanovsky (2010-09-03 16:20:00) [10]
> Игорь Шевченко © (03.09.10 11:35) [12]
> Да, конечно. И менять тысячу EXEшников по разным концам
> планеты вместо одной DLL конечно же, тоже проще, а главное,
> надежнее :)
Чего там сложного: http, ftp, DHL :)
--
Regards, LVT.
Leonid Troyanovsky (2010-09-03 16:16:00) [11]
> Игорь Шевченко © (03.09.10 13:25) [18]
> А вот Тейксейра с Пачеко пишут не так...
Они сгоряча.
--
Regards, LVT.
Dennis I. Komarov (2010-09-03 14:04:00) [12]
> именно vcl не дает нормально работать с формами в dll логика
> у нее другая, не для пихания в dll.
С этого момента, поподробнее? Что есть нормальная работа с формами?
Игорь Шевченко (2010-09-03 13:25:00) [13]
> при том что именно vcl не дает нормально работать с формами
> в dll логика у нее другая, не для пихания в dll.
А вот Тейксейра с Пачеко пишут не так...
sniknik (2010-09-03 13:16:00) [14]> Так может всетаки дождаться ответа автора
а кто с автором то разговаривает?
> Они никакого, но причем тут это?
при том что именно vcl не дает нормально работать с формами в dll логика у нее другая, не для пихания в dll.
Dennis I. Komarov (2010-09-03 13:08:00) [15]А у меня никто и не жалуется :)
> но речь в последних постах немного не о том, а о целесообразности
> это делать для одного приложения. или цель чтобы твою dll
> пользовали все?
Так может всетаки дождаться ответа автора, а не ромашки рвать
> Какое отношение они имеют к VCL?
Они никакого, но причем тут это?
sniknik (2010-09-03 12:10:00) [16]> Живут мелкомягкие диалоги в dll-ках, и ничего так живут.
ну так сделай аналогично, не пользуясь vcl/потокобезопасно, и твои будут жить без жалоб...
но речь в последних постах немного не о том, а о целесообразности это делать для одного приложения. или цель чтобы твою dll пользовали все?
Плохиш (2010-09-03 12:07:00) [17]
> Dennis I. Komarov © (03.09.10 12:00) [13]
>
> Живут мелкомягкие диалоги в dll-ках
Какое отношение они имеют к VCL?
Dennis I. Komarov (2010-09-03 12:00:00) [18]Живут мелкомягкие диалоги в dll-ках, и ничего так живут. Все юзают и не жалуются...
Игорь Шевченко (2010-09-03 11:35:00) [19]Leonid Troyanovsky © (03.09.10 11:16) [9]
> сделать uses проще и надежнее чем LoadLibrary.
Да, конечно. И менять тысячу EXEшников по разным концам планеты вместо одной DLL конечно же, тоже проще, а главное, надежнее :)
sniknik © (03.09.10 11:16) [10]
Лучше сразу ампутировать
sniknik © (03.09.10 11:27) [11]
> есть еще такой термин dll hell. сам себе я его устраивать
> не буду. а вот разгребать чужие проблемы с этим связанные
> (или с похожим) приходится.
Мы честно сделали проверку версий используемых DLL, если не совпадает - разгребайте сами.
sniknik (2010-09-03 11:27:00) [20]Leonid Troyanovsky © (03.09.10 11:16) [9]
есть еще такой термин dll hell. сам себе я его устраивать не буду. а вот разгребать чужие проблемы с этим связанные (или с похожим) приходится.
есть несколько приложений с dll, идея их была типа такой - приложение не меняем, нужен новый функционал/изменение меняем только библиотеку, и без перекомпиляций...
в итоге вижу, что меняется всегда ВСЕ, т.к. одни изменения тянут за собой другие, изменение функций, и как итог одна версия приложения работает исключительно с одной версией dll, а если даже dll-и старые не менялись, то все одно "на всякий случай". идея модульности в общем нафиг летит.