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

Вниз

плагины   Найти похожие ветки 

 
bagos   (2008-01-24 21:54) [0]

Мастера думаю присобачить к проге поддержку плагинов(dll с формами),появился вопрос, плагины загружать при создании формы или загружать только когда надо нужный плагин, я так понимаю если загрузить сразу все то много памяти пожрется ведь каждая dll ~1.5-2.5 мега.
что посоветуете?


 
@!!ex ©   (2008-01-24 21:59) [1]

загружать при обращении к методами описанным в dll


 
bagos   (2008-01-24 22:03) [2]

там сособо то и методов нету, разве что только инициализация. все остальное делается в самом плагине(форме)


 
Leonid Troyanovsky ©   (2008-01-24 22:23) [3]


> bagos   (24.01.08 21:54)  

> что посоветуете?

Плюнь.

--
Regards, LVT.


 
bagos   (2008-01-24 23:12) [4]


> Leonid Troyanovsky ©  

Плюнь.


от вас другого совета и не дождешься, смысл писать тогда :)
форум для начинающих)))


 
{RASkov} ©   (2008-01-24 23:25) [5]

> [4] bagos   (24.01.08 23:12)
> форум для начинающих

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


 
bagos   (2008-01-24 23:32) [6]

{RASkov}, спасибо!
всегда поднимаешь мне тут настроение!!! :)
воображалку уже включил, пока все путем идет :)))))


 
bagos   (2008-01-25 02:44) [7]

я запоролся, не знаю как сделать :(
плагины загружаются нормально вроде как все ок!
в 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-25 11:00) [8]

ночью голова плохо думает, с устра встал  сразу мысля пришла :)

if xz then
begin
 search.Close;
 xz := false;
 Exit;
end;

if FindWindow(nil,"search") <> 0 then
begin
 xz := true;
 search.Show;
end;


 
Сергей М. ©   (2008-01-25 11:40) [9]


> агружается форма по обработчику события


Событию какого объекта ?


 
bagos   (2008-01-25 14:36) [10]

созрела новая проблема с плагинами:

у меня есть главная форма,в нее загружаются плагины(dll содержащие формы).
плагинов много, и у всех кнопки на панели задач :(
пробовал
showwindow(handle,sw_hide)

не помогло, хайдится и кнопка и сама форма плагина.
уже и не знаю че делать :( подсобите


 
{RASkov} ©   (2008-01-25 14:41) [11]

> [10] bagos   (25.01.08 14:36)
> уже и не знаю че делать :( подсобите

вариант: Стиль окну выставь SetWindowLong и WS_EX_TOOLWINDOW


 
Сергей М. ©   (2008-01-25 14:45) [12]


> главная форма,в нее загружаются плагины(dll


Белиберда.


> не знаю че делать :( подсобите


Начни с азов.
см. выше про "белиберду".


 
bagos   (2008-01-25 15:03) [13]

тема SetWindowLong и WS_EX_TOOLWINDOW не прокатила для плагина


 
DiamondShark ©   (2008-01-25 16:05) [14]


> bagos   (25.01.08 14:36) [10]
> созрела новая проблема с плагинами:

Тебе советовали плюнуть. Не послушался.


> у меня есть главная форма,в нее загружаются плагины(dll
> содержащие формы).
> плагинов много, и у всех кнопки на панели задач :(

передавай в плагины Application.Handle из хоста, в плагинных формах в CreateParams используй его как WndParent

Ну и готовься к новому урожаю. Скоро созреет ;)


 
bagos   (2008-01-25 18:00) [15]


> передавай в плагины 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 и я не знаю как :(


 
bagos   (2008-01-25 18:01) [16]

WS_EX_TOOLWINDOW вместо WS_EX_APPWINDOW;


 
bagos   (2008-01-25 18:03) [17]

сам ступил:

 Params.ExStyle   := Params.ExStyle or WS_EX_TOOLWINDOW;

решило проблему:)
всем спасибо за ответы!


 
easy ©   (2008-01-25 18:11) [18]

http://narod.yandex.ru/cgi-bin/yandsearch?user=delphiworld&text=plugin&where=2


 
MetalFan ©   (2008-01-25 18:25) [19]

неплохо бы и экземпляру Application в dll установить Handle такой же, как и в приложении...


 
Amoeba ©   (2008-01-25 21:59) [20]

Статьи о плагинах:
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



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

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

Наверх




Память: 0.51 MB
Время: 0.024 c
2-1201268146
smartleds
2008-01-25 16:35
2008.02.17
Народ , подскажите плз . Есть в проекте на delphi два файла


2-1201139759
Maloj2007
2008-01-24 04:55
2008.02.17
Определение размера TStringList


15-1200215446
Dark_Blue
2008-01-13 12:10
2008.02.17
Протестируйте тест


1-1194517113
DDDeN
2007-11-08 13:18
2008.02.17
Реализация механизма расписания


2-1201252736
destructor
2008-01-25 12:18
2008.02.17
видно пользователю image или нет?