| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Комонент ведет поразному |
| Автор: Dr.Wisdom 1.2.2007, 14:59 | ||||||||||||
| Есть визуальный компонент. Довольно таки сложный. Состоит из двух картинок одна над другой и обладает кучей свойств, которые этими картинками управляют. В нем есть набор своих свойств.
и набор свойств родителя
И еще есть функция refresh_status(), определенная в родителе, которая вызывает виртуальную refresh_view(), определенную в каждом наследнике. Эта функция также вызываеться из каждой set_свойство после присвоения соответсствующей переменной. Стало нужно чтобы если вдруг установилось одно из всвойств Broken Repair или NoData то в нижнюю картинку загрузился определенный файл. До этого было так, что загрузка этого файла зависила только от NoData. Кароче говоря, было
стало
все по логике вещей нормально. и в дезигн тайме все работает!!!! я переключаю свойства и картинка меняется. НО. в рантайме не работает!!!!!!!!!!!!! я переключаю свойство и картинка не меняется. У меня открыт пакет с компонентами. Я его перекомпиливал. Я его грохал и снова компилил. Я грохал все что с ним связвно и компилил заново. В дезигне все работает как надо!!!! А в рантайме - нет!!!! Что это? Может сталкивался кто? Может это билдер гонит? Вот на всякий код функций обновления картинок.
и еще
|
| Автор: Anikmar 1.2.2007, 19:26 |
| А вот при установке одного из этих трех свойств точно в каждом вызывается refresh_status? На ум приходит только эта причина. А почему в дизайнтайме перерисовывается - может там какая-то другая ветка срабатывает... |
| Автор: Dr.Wisdom 2.2.2007, 23:41 |
| Да, точно. Везде. И если бы не выхывался, то и в дезигне не работало бы. ЭЭЭЭЭЭХ! Семь бед - один ресет. Снесу билдер и попробую снова. |
| Автор: Anikmar 3.2.2007, 00:45 |
Достаточно радикально. Надеюсь поможет. |
| Автор: Dr.Wisdom 5.2.2007, 13:03 | ||
| Вооооот добрался до кодов вот свойства (чтобы не быть голословным про "да везде")
|
| Автор: Dr.Wisdom 5.2.2007, 13:52 |
| Помогло! Я в замешательстве. Наверное у меня все таки билдер гонючий. Притом проект который не работал продолжает не работать, только теперь ругаеться на "ненашел файл .lib". Типо там были мои старые компоненты. Потому что новый пакет я скомпилил под другим именем. Выходит внутри проекта есть ссылка на пакеты? Чушь какаято. Но в новом проекте с использованием тех же компонентов все работает как надо. Замечательно то, что я пробывал создавать ногвые пустые проекты с нуля на прошлом, ныне снесенном билдере и они не работалт точно также как и основное проект. Теперь ни один из них не работает совсем, но новосозданные проекты работают. Вот такой глюк. Толи в моем билдере, толи еще в чем. Я все таки думаю, что в билдере. Копиляция билдера следующая: v6.0 10.155 + Sp4 + RxLib 2.75 + DepOPCComponents2.2 |
| Автор: Vyacheslav 5.2.2007, 16:35 |
Почему чушь? У Вас была подключена библиотека с одним именем, Вы подключили ешеодну библиотеку с другим именем. Линковщик доходит до первой, находит нужные ссылки и подключает. Ваша вторая, которое содержит новый вариант ему без разницы. Вохможно прада линковщик варнинги выдаст. А так, открываем Project->Edit Option Source и вычищаем ненужные библиотеки |
| Автор: Dr.Wisdom 5.2.2007, 20:26 |
| Ясно... с этим ясно.... Но это вторично.... До переустановки то несоответствие дезигнтайми с рантаймом было! Вот что меня убило! И библиотека тогда одинаково называлась. С этими подключаемыми модулями такая чушь происходит. Жуть. Неработает.... Неработает.... Неработает.... [сходишь кофе пропьешь] Работает..... |