|
Модераторы: Poseidon, Snowy, bems, MetalFan |
|
Kusik |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
Здравствуйте! Столкнулся с проблемой при внедрении проекта, проявляется на единичных/некоторых компьютерах пользователей (на которых делфи не установлено) под управлением как Windows XP так и Windows 7. На главной форме проекта лежит дерево (TTreeView), список (TListView) и TMemo. При чем, каждый контрол лежит на своей панели, между которыми находится сплиттер. При запуске проекта Мемо-поле исчезает с панели, и, при попытке перечитать содержимое к примеру листвью или дерева, получаем ексепшин об ошибке доступа (которая кагбэ намекает нам, что мемо-поля не существует, что оно при запуске не создалось). Но ведь мемо-поле не динамически создается, а лежит прямь в дезайн-тайме на панели. На других компах все прекрасно отображается и глубоко фиолетово, установлен Делфи или нет, ос ХР или 7. Может кто сталкивался с подобной проблемой, как ее решить?
З.Ы. Проект написан на Delphi 7. Мемо-поле занимает всю клиентскую область панели-родителя. Панель же при запуске нормально отображается, никуда не едет, не плывет. При разворачивании/изменении размеров формы принимает правильные положения. При юзе сплиттера тоже, но мемо поле не появляется. |
|||
|
||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Ошибка в 17-й строке
-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
Kusik |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
Это ответ мега-гуру? Может есть адекватные, знающие люди, которые могут дать ответ? |
|||
|
||||
Keeper89 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Kusik, все могут, код в студию.
|
|||
|
||||
Kusik |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
Код, весь проект, что-ли? ну ладно, приду на работу, попробую |
|||
|
||||
Poseidon |
|
|||
Delphi developer Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Для начала хватит кода OnCreate и OnShow формы, а так же само описание класса формы. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Kusik |
|
||||||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
Описание класса формы и всего остального:
FormCreate:
FormShow:
|
||||||
|
|||||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
Судя по Вашему описанию либо компонент уничтожается (free) либо значение переменной становится nil.
Опять же из чистой логики и прагматизма вероятность второго значительно выше. Учитывая, что ошибка возникает на конкретных системах, то можно предположить, что чего то на этих системах не хватает. Возможно тех же шрифтов. Физически перезапись происходит в результате ошибок стека. Для начала стоит включить "Overflow checking" и по запустить на компьютере на котором наблюдается баг. Если нет возможность работать дебагером на этой машине, то после каждой строки кода делаем логирующее сообщение и проверяем значение переменной указывающей на мемо. Добавлено через 1 минуту и 12 секунд ИМХО .Assign приводит к этому. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
Kusik |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
спасибо, попробую так и сделать. а может эта проблема возникать в следствии использования PE запаковщика? может он какимто образом вырезает именно мемо из проекта (только на некоторых компах. из 10 компьютеров только у 2х такая проблема)
|
|||
|
||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 5 Всего: 8 |
скорее не вырезает, а не правильно разворачивает приложение. PS: зачем пользоваться "запаковщиками"? Они, что чем то помогают? Столько написано про вред использования подобных вещей, но с завидным упорством часть индивидов ... не может расстаться с любимой погремушкой. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
Kusik |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
Проблема повторилась, но уже с тулбаром( эта проблема имела место быть еще раньше,) пока накручивал функционал, не обращали на это внимание, но сейчас, как начало пропадать мемо поле, то и тулбар стал исчезать. С туллбаром что только не пробовал и pagescroller и coolbar и controlbar. Решил(но доконца не уверен, что вновь не исчезнет) контейнер куллбар положил не на форму, а на панель, которую привязал к топу формы. Вроде бы не пропадает больше. Но проблема с мемо полем так же имеет место быть, при чем, после каждой новой компилляции может то пропадать, то нет. Не могу найти никакой закономерности, почему это происходит.
Повесил в ФормАктивейт следующий код:
Происходит следующее: когда впервые, после формшоу заходит в эктивейт показывает что все ок, как тока нажимаю на кнопку ок, тут же появляется 'null'. Т.е. форма стартует нормально, но в какойто момент времени при активизации компоненты убиваются. P.S. раньше писал, что исчезает только Мемо, теперь же, исчезает еще и панель, на которой висит мемо. Даже не только они исчезают, а скорее дестроятся. Только не понятно как и почему?!! Были ли у кого подобные глюки с самоуничтожением статических(design-time) компонентов? |
|||
|
||||
Kusik |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 9.12.2005 Где: Харьков Репутация: нет Всего: нет |
Все. Решено. В двух разных местах проекта производилось освобождение формы .Free и поэтому рандомным способом под управлением разных ос пропадало то мемо то панель инструментов
|
|||
|
||||
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |