|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
Работа с плагинами программы24.11.2013, 14:34. Показов 2252. Ответов 15
Метки нет (Все метки)
Пишу программу с поддержкой плагинов. Нужно как-то в метод Run(объект_формы) плагину передать объект главной формы приложения, чтобы при выполнении метода плагина Load() можно было обновлять ProgressBar в главной форме. Делать ссылку на MainForm в плагине считаю ненужным, так как планируется написание плагинов сторонними разработчиками и соответственно при написании другого плагина человеком, у которого нет исходника основной программы, могут возникнуть трудности. Может я неправильно понимаю смысл работы плагинов. Объясните кому нетрудно.
0
|
|
| 24.11.2013, 14:34 | |
|
Ответы с готовыми решениями:
15
Работас плагинами и их реализация Обмен между плагинами При запуске программы выдается сообщение "Прекращена работа программы... " |
|
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
|
|
| 24.11.2013, 16:40 | |
|
Сделайте в классе плагина событие, а в основной форме подписывайтесь на него
0
|
|
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
| 24.11.2013, 17:02 [ТС] | |
|
canopen, как понять "подписывайтесь"?
0
|
|
|
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
|
|||||||||||
| 24.11.2013, 17:30 | |||||||||||
|
Предположим класс плагина выглядит как-то так:
0
|
|||||||||||
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
| 24.11.2013, 18:40 [ТС] | |
|
canopen, а можно вам проект скинуть на правку? Просто я плагины использую через интерфейс. Да и вообще недавно начал C# учить и много не понятно пока.
0
|
|
|
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
|
|
| 24.11.2013, 18:51 | |
|
Лучше просто почитайте про события. Кстати, то что вы используете интерфейсы ничего не меняет - интерфейс так же как и класс может содержать события.
0
|
|
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
| 24.11.2013, 19:00 [ТС] | |
|
canopen, я обязательно прочитаю про события, просто мне легче понять, когда есть живой, так сказать, пример. Тем более если код мой. Так гораздо понятнее будет. Один примерчик, я много не прошу
![]() Вот файл плагина ссылка Вот файл интерфейса ссылка Покажите, плиз, как его изменить, чтобы использовать события.
0
|
|
| 24.11.2013, 19:49 | ||||||
0
|
||||||
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|||||||||||
| 24.11.2013, 23:03 [ТС] | |||||||||||
|
Написал так в MainForm
0
|
|||||||||||
|
|
||||||||||||||||
| 25.11.2013, 00:26 | ||||||||||||||||
|
Вот пример, как из плагина работая в другом потоке инициировать события так, чтобы в основном потоке не нужно было бы вызывать Invoke для контролов.
Библиотека: PluginLibrary IPlugin.cs
PluginTest.cs
Проект: WinForms_Plugin MainForm.cs
0
|
||||||||||||||||
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
| 25.11.2013, 00:38 [ТС] | |
|
Блин, мужики, сложно это пока для меня. Да и поздно уже и башка закипела. Скину файлы для примера. Исправьте кому не сложно.
Program.cs MainForm.cs IPlugin.cs PluginTest.cs PluginForm.cs
0
|
|
|
|
|
| 25.11.2013, 02:00 | |
|
Не проще проект готовый выложить, чтобы из этих кусков не сидеть не гадать, не складывать проект. Вообще, я увидел в методе Main ты вызываешь создание экземпляра класса после того, как закроется главное окно. И классы не файлами выкладывать надо, а просто текстом, их только скачать все ещё тот гемор, телодвижений много, хотя бы в архив можно было скинуть.
0
|
|
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
| 25.11.2013, 04:37 [ТС] | |
|
Мужики, вот архив и в нем полность вся папка рабочая, включая IPlugin и PluginTest. Помогите, плиз, реально в это все уперлось и не двигается.
Архив
0
|
|
| 25.11.2013, 12:22 | ||||||
0
|
||||||
|
0 / 0 / 3
Регистрация: 24.05.2012
Сообщений: 93
|
|
| 25.11.2013, 12:46 [ТС] | |
|
Grishaco, куда на пиво кинуть? Спасибище тебе, дружище!!! Вот от всей души - СПАСИБО! Вот именно то что нужно!
0
|
|
| 25.11.2013, 12:46 | |
|
Помогаю со студенческими работами здесь
16
Нужно создать плагин, посоветуйте программу для работы с звуковыми файлами c плагинами на C# Автозапуск программы: прекращена работа программы При запуске программы ошибка "Прекращена работа программы" Работа с плагинами через интерфейс Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|