![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
плагины
bagos © (2008-01-24 21:54:00)Мастера думаю присобачить к проге поддержку плагинов(dll с формами),появился вопрос, плагины загружать при создании формы или загружать только когда надо нужный плагин, я так понимаю если загрузить сразу все то много памяти пожрется ведь каждая dll ~1.5-2.5 мега.
что посоветуете?
Amoeba (2008-01-25 21:59:00) [1]Статьи о плагинах:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=468
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=512
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=274
MetalFan (2008-01-25 18:25:00) [2]неплохо бы и экземпляру Application в dll установить Handle такой же, как и в приложении...
easy (2008-01-25 18:11:00) [3]http://narod.yandex.ru/cgi-bin/yandsearch?user=delphiworld&text=plugin&where=2
bagos (2008-01-25 18:03:00) [4]сам ступил:
Params.ExStyle := Params.ExStyle or WS_EX_TOOLWINDOW;
решило проблему:)
всем спасибо за ответы!
bagos (2008-01-25 18:01:00) [5]WS_EX_TOOLWINDOW вместо WS_EX_APPWINDOW;
bagos (2008-01-25 18:00:00) [6]
> передавай в плагины Application.Handle из хоста, в плагинных
> формах в CreateParams используй его как WndParent
я правильно понял?
в dll добавляем
...
protected
procedure CreateParams(var Params: TCreateParams); override;
...
procedure Tdll1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := GetDesktopWindow;
end;
теперь осталось передать в dll Application.Handle и я не знаю как :(
DiamondShark (2008-01-25 16:05:00) [7]
> bagos (25.01.08 14:36) [10]
> созрела новая проблема с плагинами:
Тебе советовали плюнуть. Не послушался.
> у меня есть главная форма,в нее загружаются плагины(dll
> содержащие формы).
> плагинов много, и у всех кнопки на панели задач :(
передавай в плагины Application.Handle из хоста, в плагинных формах в CreateParams используй его как WndParent
Ну и готовься к новому урожаю. Скоро созреет ;)
bagos (2008-01-25 15:03:00) [8]тема SetWindowLong и WS_EX_TOOLWINDOW не прокатила для плагина
Сергей М. (2008-01-25 14:45:00) [9]
> главная форма,в нее загружаются плагины(dll
Белиберда.
> не знаю че делать :( подсобите
Начни с азов.
см. выше про "белиберду".
{RASkov} (2008-01-25 14:41:00) [10]> [10] bagos (25.01.08 14:36)
> уже и не знаю че делать :( подсобите
вариант: Стиль окну выставь SetWindowLong и WS_EX_TOOLWINDOW
bagos (2008-01-25 14:36:00) [11]созрела новая проблема с плагинами:
у меня есть главная форма,в нее загружаются плагины(dll содержащие формы).
плагинов много, и у всех кнопки на панели задач :(
пробовал
showwindow(handle,sw_hide)
не помогло, хайдится и кнопка и сама форма плагина.
уже и не знаю че делать :( подсобите
Сергей М. (2008-01-25 11:40:00) [12]
> агружается форма по обработчику события
Событию какогообъекта ?
bagos (2008-01-25 11:00:00) [13]ночью голова плохо думает, с устра встал сразу мысля пришла :)
if xz then
begin
search.Close;
xz := false;
Exit;
end;
if FindWindow(nil,'search') <> 0 then
begin
xz := true;
search.Show;
end;
bagos (2008-01-25 02:44:00) [14]я запоролся, не знаю как сделать :(
плагины загружаются нормально вроде как все ок!
в dll загружается форма по обработчику события
//dll
procedure Tsearch.ShowMe(Sender: TObject);
begin
Show;
end;
собственно хочу сделать чтобы при повторном вызове shomwe была проверка что если форма загружена то ее надо закрыть,а если нет то загрузить. что то типо:
//dll
procedure Tsearch.ShowMe(Sender: TObject);
begin
if findwindow(nil, 'search') <> 0 then
PostMessage(FindWindow(Nil, 'search'), WM_close, 0, 0)
else
Show;
end;
в чем дело не пойму :( не работает и все тут...
bagos (2008-01-24 23:32:00) [15]{RASkov}, спасибо!
всегда поднимаешь мне тут настроение!!! :)
воображалку уже включил, пока все путем идет :)))))
{RASkov} (2008-01-24 23:25:00) [16]> [4] bagos (24.01.08 23:12)
> форум для начинающих
"начинающие" с плагинов не начинают :)
А если ты решил делать программу с поддержкой плугинов, то ты уже не "начинающий", а имеешь кое-какой опыт разработки приложений...
Тогда зачем называть себя начинающим???
Если по сабжу... дабы не офтопить, то ....не знаю :( я плугинами не занимался(
Впрочем.... включи воображение.... смотря что за плагин.... какова его работа(задача).... посмотри в эту сторону, посмотри в ту..... пораскинь мозгом.... только не обляпой ни кого) и сделай наконец вывод - как же должен грузится конкретный плугин....
bagos (2008-01-24 23:12:00) [17]
> Leonid Troyanovsky ©
Плюнь.
от вас другого совета и не дождешься, смысл писать тогда :)
форум для начинающих)))
Leonid Troyanovsky (2008-01-24 22:23:00) [18]
> bagos (24.01.08 21:54)
> что посоветуете?
Плюнь.
--
Regards, LVT.
bagos (2008-01-24 22:03:00) [19]там сособо то и методов нету, разве что только инициализация. все остальное делается в самом плагине(форме)
@!!ex (2008-01-24 21:59:00) [20]загружать при обращении к методами описанным в dll