2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Изменение компонента в С++, подскажите пожалуйста.
Сообщение15.11.2008, 16:59 
Всем доброго времени суток.
Вот такая проблема - создаю пакет, добавляю компонент. В качестве базового класса используется TPaintBox и задача - всего-напросто добавить свойство, которое бы при нажатии кнопки отрисовывало бы нам границы этого компонента. ну, сделал, скомпилировал, работает, все рисует. потом решил сделать не отрисовку, а заливку того же компонента. пишу код заливки вместо отрисовки линией границ. компилирую пакет... устанавливаю... сохраняю... пишу тестовую прогу.... запускаю... а в программе все равно идет отрисовка линией границ компонента, а не заливка. Вот почему так? неужели чтобы что-то исправить в пакете, его надо пересоздавать?

 
 
 
 
Сообщение15.11.2008, 17:53 
Аватара пользователя
Причиной может быть, что программа подхватывает старую версию скомпилированного пакета.
Проверьте, что в тестовой программе используется действительно последняя скомпилированная (.bpl) версия.
Какая bpl действительно используется и где она лежит, можно узнать, нажав Ctrl+Alt+M в режиме отладки.

 
 
 
 
Сообщение15.11.2008, 21:06 
спасибо большое! буду пробовать...

Добавлено спустя 56 минут 53 секунды:

Вот запустил окно подключаемых модулей(Alt+Ctrl+M)... Оказалось, что тестовая программа непонятно почему юзает другой пакет, который удален с помощью действий(Project->Options->Packages->пакет->Remove). В палитре компонентов компонента из этого пакета, естественно, тоже нет. Тем не менее в окне подключаемых модулей обнаруживается ссылка на уже не существующий пакет. попытка же добавить в том же окне нужный файл .bpl приводит к тому, что при повторном запуске приложения вылазит окно "CPU"...

 
 
 
 
Сообщение17.11.2008, 13:11 
Аватара пользователя
Если Вы хотите избавиться от run-time package, надо проследить, чтобы ссылки на него не было в списке "Build with runtime packages".
Если Вы хотите откомпилировать другую версию пакета, надо следить, куда скомпилировался bpl-файл.
Напоминаю, что в Builder'е для каждого пакета, вообще говоря, создаётся 2 файла пакета: design-time package (с расширением dcp), который используется исключительно самим Builder'ом, чтобы помочь Вам правильно манипулировать компонентами на формах/модулях данных (в режиме разработки), и run-time package (с расширением bpl), который используется Вашей программой во время выполнения.
Возможно, Вы спутали эти два типа пакетов.

 
 
 
 
Сообщение22.11.2008, 16:34 
Спасибо за информацию. Проблема была в том, что используемые в пакете файлы .cpp, .res, и .h находились в папке билдера '''Bpl'. перенос их в папку с пакетом и установка уже оттуда в список Requires решило проблему.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group