![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| appleVin |
|
||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 26.3.2007 Репутация: нет Всего: нет |
Всем доброго времени суток!
Опишу задачу поподробней: Есть панель с кнопками, создающимися динамически, какдая кнопка должна запускать форму из Dll, (не модально), т.е. сколько кнопок - столько и форм из Dll-ок можно запустить... Т.к. кнопки динамические - то OnClick один:
да, вещё вот такой кусочек :
Массивы:
И обработчик Execute:
В результате получается вот такоя картина: если я к примеру открою 3 формы(по 1й из 3х Dll), то, закрывая последнюю, все ок, но закрывая две предыдущие - они закрываются и компилятор говорит - "Invalid pointer operation".((( Получается когда закрывается форма - управление должно передаваться в процеддуру Execute, где-то вот сюда:
и там должно быть что-то вроде
Но не идет тута ни чего, когда закрываб те 2 не последние формы ((((. Как быть и что делать, где я не прав??? Подскажите плиз, я оч запутался! |
||||||||||||
|
|||||||||||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 15 Всего: 95 |
приложил бы код к посту, а то слишком много пропусков и многоточий, без поллитра и не разберешься, что моделировать надо...
Это не компилятор говорит (компилятор сказал все что о думает, еще на этапе компиляции), это AV... Есть подозрение, что ты где-то пользуешься расшаренными ресурсами библиотеки, соответственно при открытии последней формы они переинициализируются на неё, забирая у предыдущих... -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| appleVin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 26.3.2007 Репутация: нет Всего: нет |
Да, мне кажется так и есть |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
имхо лучше отказаться от использования в dll наследников TComponent и форм в частности.
-------------------- There are always someone smarter than you... |
|||
|
||||
| appleVin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 26.3.2007 Репутация: нет Всего: нет |
Да я бы рад, но задача у меня такая... |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 15 Всего: 95 |
appleVin
Ну приведешь ты наконец коды или нет? -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| appleVin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 26.3.2007 Репутация: нет Всего: нет |
Дык без вопросов, ща весь Юнит и закину
Токо там много лишнего и не нужного, короче чур громко не жжать Добавлено через 6 минут и 9 секунд
Вот сообственно нужный кусочек |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
ты бы лучше закинул тестовое приложение, чтоб скомпилить, запустить - и воооотона ошибочка то!
-------------------- There are always someone smarter than you... |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 15 Всего: 95 |
appleVin
Давай я тебе поясню, как надо выкладывать проблему, по шагам: 1) Делаешь резервную копию своего проекта... 2) Убираешь потихоньку все компоненты и методы, которые не влияют на ошибочность ситуации (к примеру, у меня нет компонента TpFIBDatabase и он мне не нужен - все места, где оттуда считываются данные - заменяешь на константные присваивания)... 3) Проверяешь, что все компилируется и собирается... и ошибка никуда не делась... 4) Еще раз убеждаешься, что у тебя не используется в обрезанном проекте никакие модули, кроме системных, входящих в штатную поставку дельфей... 5) ВСЕ файлы (исключая скомпиленные и временные, но обязательно включая используемые библиотеки и их исходники, если есть, и файлы конфигурации) помещаешь в архив и прикрепляешь к посту. Если размер превысил разрешенные 120 кб - используй внешние хранилища (типа webfile). 6) Человек, имеющий желание тебе помочь, скачивает архив, запускает у себя, получает наглядную визуализацию ошибки и начинает тупо жать F7, F8 до получения некорректной ситуации и выцарапывания неверной предпосылки путем нехитрого анализа... P.S. Если честно, я просто даже не знаю, что делать с приведенным тобой кодом - чтобы его внедрить, мне надо переименовать форму в такую же как у тебя, предварительно разместить все аналогичные компоненты как у тебя, создать все обработчики и только потом я смогу сделать replace текста своего модуля на твой текст. Уж больно лениво... К тому же я не знаю внешних связей этого модуля - интерфейсный раздел uses куда-то обрезался, а внутренний - неинформативный... P.P.S. Ввиду того, что как ты говорил, ошибка возникает при закрытии формы из библиотеки, то не совсем понятно, зачем ты привел код твоего приложения, а не библиотеки... Я как-то не научился в детстве телепатическим способностям, чтобы такие вещи угадывать... P.P.P.S. Ну и мелкие замечания по не совсем корректной структуре кода - а) и поток, и главная форма используют общие переменные, б) поток сбрасывает переменные, устанавливаемые в основном процессе. Поток на то и отдельная структура, что работает независимо от основного процесса. По хорошему - я бы завел все необходимые для потока параметры в наследуемый класс потока, при создании потока их инициализировал и в Execute работал бы с ними. По завершению потока они сами бы и уничтожались вместе с объектом потока... -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| appleVin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 26.3.2007 Репутация: нет Всего: нет |
ama_kid Спасибо за беспокоиство, тут разобрались с горем пополам, а за советы отдельное спасибо
|
|||
|
||||
![]()
|
| Правила форума "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. |