Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TMenuItem.Click -> any.dll\procedure


Страницы:   1 2 3 4 5 6 7 8

Dennis I. Komarov ©   (2009-05-22 10:38:00) 

Вопрос - не вопрос но:

Есть: некое приложение, интерфейс которого грузим из некой БД согласно правам пользователя, который запустил это приложение. В частности, возьмем ситуацию с TMainMenu. Согласно правам загрузилось дерево меню и подменюшек. Есть некая "ссылка" (int) на то, что должно выполнится при вызове соответствующего пункта. Процедура сего действия, а так же все интерфейсы и т.п. вынесены в библиотеку (dll).

Вопрос такой: Какая (а точнее, кто придумает лучшую) логика должна быть, чтобы связать конечный пункт менюшки с соответствующей процедурой в библиотеке, при том чтобы выполнялось условие: в приложении описана только логика а конкретные данные вынесены из него, т.е. при добавлении нового пункта (в БД) не изменялось само приложение, а только библиотека (или добавлялась новая)


Сергей М.   (2009-05-28 20:52:00) [1]


> а то я уже собрался сам считать


Не, новых кулибиных нам не надо)


Dennis I. Komarov   (2009-05-28 17:39:00) [2]


> Сергей М. ©   (28.05.09 17:36) [150]

:) Отлично, а то я уже собрался сам считать


Сергей М.   (2009-05-28 17:36:00) [3]

Убивать - да, "не моги")

Но FreeLibrary приводит к "убийству" лишь тогда, когда она вызвана ровно столько раз, сколько раз перед этим была вызвана соответствующая ей LoadLibrary.

Иными словами, каждый вызов LoadLibrary приводит к увеличению сч-ка ссылок на модуль на единицу (т.е. впервые загруженная этим вызовом библ-ка имеет значение сч-ка = 1), каждый вызов FreeLibrary - соотв-но к уменьшению оного на единицу. Как только в рез-те очередного вызова FreeLibrary сч-к ссылок обнуляется, система выгружает модуль из АП тек.процесса.


Игорь Шевченко   (2009-05-28 17:34:00) [4]


> Где же он открытый, если за использование midas-модуля денюжку
> требуют ?)


Вроде уже давно не требуют, нет ?


Dennis I. Komarov   (2009-05-28 17:26:00) [5]

Понял, т.е. если из одной dll загрузил два окна, то закрывая одно убивать ее не моги :)


Сергей М.   (2009-05-28 17:15:00) [6]


> или второй раз будет "холостым" и вернется тот же хендл?
>
>


Не совсем "холостым", но хендл получишь тот же самый.


Dennis I. Komarov   (2009-05-28 17:09:00) [7]

Если второй раз выполнить LoadLibrary одной библиотеки, то в памяти будет два экземпляра библиотеки и два различных хендла или второй раз будет "холостым" и вернется тот же хендл?


Dennis I. Komarov   (2009-05-28 13:33:00) [8]


> Не, это ты на чужом хочешь на халявку прокатиться)

Ну сперва я его изобрел, потом узнал что он есть, и за него денюжку хотять. А кататься я на нем не буду - жадные они :) Я лучше свой сделаю...


Сергей М.   (2009-05-28 13:21:00) [9]


> Я тут, понимаешь, велосипед изобрел


Не, это ты на чужом хочешь на халявку прокатиться)


Dennis I. Komarov   (2009-05-28 13:18:00) [10]


> Жаба душит ?)

Я даже не знаю какую денюжку они требуют, так что жаба приползет поздже :)

Я тут, понимаешь, велосипед изобрел, а они уже денюжку хочуть :)


Сергей М.   (2009-05-28 13:10:00) [11]


> это совсем плохо


Жаба душит ?)


Dennis I. Komarov   (2009-05-28 13:06:00) [12]


> Где же он открытый, если за использование midas-модуля денюжку
> требуют ?)

у-у-у....
так это совсем плохо. :)


Сергей М.   (2009-05-28 13:01:00) [13]


> формат открытый?


Где же он открытый, если за использование midas-модуля денюжку требуют ?)


Dennis I. Komarov   (2009-05-28 12:57:00) [14]


> Данные передаются в своем формате, упакованном в OleVariant.
>  Причем, передаваться могут не все данные, а только изменившаяся
> на клиенте часть.

формат открытый? Сможет ли приложение написанное скажем на MSVC++ работать с ним? midas.dll для этого будет достаточно?


clickmaker   (2009-05-28 12:48:00) [15]

> TDataSet -> некий текстовой формат (к примеру cds, xml)
> -> упаковали -> передали по TCP/IP -> получили -> распакавали
> -> преобразовываем в TDataSet

MIDAS именно так и работает.
Данные передаются в своем формате, упакованном в OleVariant. Причем, передаваться могут не все данные, а только изменившаяся на клиенте часть.


Сергей М.   (2009-05-28 12:18:00) [16]


> MIDAS не COM?


MIDAS основана на COM, но это специфичнаянадстройка.


Dennis I. Komarov   (2009-05-28 12:15:00) [17]

У меня пока такая мысль:
TDataSet -> некий текстовой формат (к примеру cds, xml) -> упаковали -> передали по TCP/IP -> получили -> распакавали -> преобразовываем в TDataSet (или чего другое, в зависимости от IDE)


Dennis I. Komarov   (2009-05-28 12:01:00) [18]


> Сергей М. ©   (28.05.09 11:56) [133]
> О MIDAS речь тем более идти не может - это технология и
> среда, специфичная для сред разработки от Борланд, а УЮ-
> среда про Борланд ничего не знает.
>
> Зато наверняка знает про OLE, COM, ActiveX, CORBA)


MIDAS не COM?
Тогда вычеркнул из списка :)


> Зато наверняка знает про OLE, COM, ActiveX, CORBA)

Можно подробнее, примеры, хорошо\плохо, чем опасно... и т.д.


Сергей М.   (2009-05-28 11:56:00) [19]


> УЮ ну не знает что это и как его есть


Так он еще много чего может не знать, не только это)

О MIDAS речь тем более идти не может - это технология и среда, специфичная для сред разработки от Борланд, а УЮ-среда про Борланд ничего не знает.

Зато наверняка знает про OLE, COM, ActiveX, CORBA)


Dennis I. Komarov   (2009-05-28 11:56:00) [20]


> clickmaker ©   (28.05.09 11:46) [132]
>
> авторизацию может проводить хост-экзе, а в библиотеку передавать
> уже готовый интерфейс сервера приложений.

Так оно и задумано. Задача обмена инфы [131]


Страницы:   1 2 3 4 5 6 7 8

Наверх

Титульная страница Поиск, карта сайта Написать письмо