Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.045 c
15-1200525494
korstin
2008-01-17 02:18
2008.02.17
Sun to buy MySQL for $1 billion


8-1174153247
San ciz
2007-03-17 20:40
2008.02.17
сохранение файла


2-1200930778
Azize
2008-01-21 18:52
2008.02.17
TMemo


2-1201169873
Я
2008-01-24 13:17
2008.02.17
Как проверить выводится ли на экран окно Hint


15-1199971931
Dmitry S
2008-01-10 16:32
2008.02.17
Расскрыть SWF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский