![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Из-за чего это происходит и как это победить? -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Так убей поток сам:
1) При создании укажи FreeOnTerminate := True; 2) При закрытии проги укажи MyThread.Terminate; -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Что-то новенькое Покажи-ка код. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
<Spawn> ты меня неприваильно понял, не я создаю Threads, они автоматически создаются при запуске OpenDialog.Execute и соответственно я не могу указать им Terminate. т.е. может это и можно как нить здеалть, но как я незнаю.
Петрович с кодом наврядли получится весит он ну уж очень много Но суть его рассказать могу: Имеется программа.exe которая динамически загружает Н-ное_количество_.dll - типа плугины в которых хранятся формы, все это чудо (и программа и плугины) используют еще одну dll - назовем ее ядро через которую они (плагины и сама прога) обмениваются различной информацией, в ядре есть процедуры: type TsendMsg = procedure (CMD: PAnsiChar; Param1, param2: ANsiChar; Flags: Integer); 1. InitMain (App: TApplication) - прога.ехе скидывает значение Application в ядро 2. RegisterModule (Mx: TsendMsg); - все плугины и прога вставляют сюда процедуры обработки информации; 3 SendMsg (CMD: PAnsiChar; Param1, param2: PANsiChar; Flags: Integer) - ядро при выполнении этой процедуры передает эти параметры всем модулям зарегестрированным в RegistrModule 4. EndSession (ExitType: Integer); при вызове ее сохраняется лог, и очищаются переменные занятые при RegisterModule; после чего вызывается FreeLibraryAndExitThread (App.Handle); если FreeLib не вызывать выдается сообщение об ошибке Invalid Pointer Opertion; Далее, в плугинах набор процедур нестандартный, да и неизвесно какие надо будет загружать а какие нет, поэтому они загружаются так: Plugin[x].Handle := LoadLibrary (xxx); @Plugin[x].Activate := GetProcAdress (xxx); - инициализация модуля, создание формы плугина @Plugin[x].DeActivate := GetProcAdress (xxx); - закрытие плугина и его формы @Plugin[x].GetActionList := GetProcAdress (xxx); - список действий которые может выполнить этот плугин @Plugin[x].DoActionN := GetProcAdress (xxx); - выполнить N действие из списка действий @Plugin[x].GUI := GetProcAdress (xxx); - функция возврацает TForm плугина в проге.exe FormCreate InitMain (Application); ... end; FormClose: { цикл plugin[x].Deactevate; FreeLibrary (Plugin[x].Handle) } ... Action := caFree; EndSession; end; Вот, если вкраце то все -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Во блин, все гениальное - то просто
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |