Предлагаю вниманию альфа релиз компонента удаленного доступа к контролам низкого уровня, те от менеджера к контролу, а не от контрола к менеджеру. Те менеджера можно поместить в контейнер и из него иметь доступ к любому контролу верхнего уровня (по крайней мере, на уровне почти всех доступных методов WinControls). В архив входит необходимая версия Win.pas, которую надо заменить (сохранив предыдущую, на всякий случай, для отката). Функционал Win.pas не изменен (в сравнении со штатным с SVN), изменена только организация выдачи событий на новую, которая позволяет выдавать события удаленным менеджерам через стандартную очередь сообщений (предложения от andrestudio по синхронизации захвата событий тут не прокатывают, привязку к его контролам надо смотреть отдельно, но тк у меня их нет, я это сделать не смогу, да у него там и Win.pas свой собственный). В архиве два примера, один из них показывает удаленную и основную отрисовку на контексте формы, другой использует штатный пример из папки примеров, но в нем сокращено внешнее количество связей с контейнерами (вот, кстати, именно возросшее число связей в больших проектах меня и сподвигнуло к созданию компонента, тк надоело созерцать лес связей) за счет применения компонента (обновления c SVN приветствуются, тк я изменил обработчик сообщений в MST_UseEditCtrl, но со старым тоже должно работать, тк этот компонент не контрол). Это экспериментальный компонент, ничего не могу сказать про необходимость его использования и нужности его применения. Но компонент уже создан и там отрабатывались некоторые концепции удаленного доступа к событиям и методам классов, а также удаленная синхронизация событий к нескольким компонентам. Если данный компонента вас устроит, и вы увидите в нем надобность, то, возможно, после тестирования я его добавлю.
Внимание! Патч добавлен на SVN
На всякий случай привожу ссылку на зеркало штатного SVN, мало ли что может случится -- SVN_Delphi
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
карма: 22 |
| ||
файлы: 1 | Project_RemoteAccessManager_001.zip [15.7KB] [509] | ||
Голосовали: | ric, strannik_nebes |
Редактировалось 44 раз(а), последний 2024-12-22 01:03:26