|
8 / 8 / 0
Регистрация: 19.04.2011
Сообщений: 102
|
|
Разработка визуальных компонентов - компонент потомок TGraphicControl12.11.2011, 16:07. Показов 8685. Ответов 34
Метки нет (Все метки)
Нужно разработать визуальный компонент потомок TGraphicControl, представляющий собой любую статическую картинку на форме.
Помогите пожалуйста найти хорошую книжку, самоучитель или готовый пример.
0
|
|
| 12.11.2011, 16:07 | |
|
Ответы с готовыми решениями:
34
Потомок TGraphicControl Дизайн визуальных компонентов Создание визуальных компонентов |
|
|
|
| 16.11.2011, 20:07 | |
|
как сделал? с ресурса считываешь картинку?
а то теперь и у меня проблема появилась. когда кидаю TMyGraphicControl на форму - все нормально. когда запускаю на выполнение - появляется исключение EResNotFound with message 'Resource BITMAP_0'. до этого проверял - такого вроде не было.
0
|
|
|
8 / 8 / 0
Регистрация: 19.04.2011
Сообщений: 102
|
|
| 16.11.2011, 22:03 [ТС] | |
|
.dcr файл с картинкой сделал. назвал и файл и картинку как компонент.
0
|
|
|
|
|
| 17.11.2011, 07:25 | |
|
а считывал картинку таким образом?
LoadFromResourceName((int)HInstance, название_битмапа);
0
|
|
|
8 / 8 / 0
Регистрация: 19.04.2011
Сообщений: 102
|
|
| 17.11.2011, 08:05 [ТС] | |
|
Нет, я такого даже не писал ни где.
0
|
|
|
|
|
| 17.11.2011, 08:12 | |
|
а как тогда картинку на форме отображаешь?
0
|
|
|
8 / 8 / 0
Регистрация: 19.04.2011
Сообщений: 102
|
|
| 17.11.2011, 12:21 [ТС] | |
|
DCR это файл ресурсов для компонента, его нужно назвать так же как и класс, а в нём уже находится картинка с таким же названием. При создании компонента присоединяешь к нему этот файл и всё(у меня он автоматически был прописан, хотя и не создан).
Добавлено через 3 минуты Файл dcr можно создать так : Tools/Image Editor; File/New/Component Resource File. Внутри создаёшь картинку(Bitmap) 24х24.
0
|
|
|
8 / 8 / 0
Регистрация: 19.04.2011
Сообщений: 102
|
|
| 17.11.2011, 12:25 [ТС] | |
|
Вот проверь.
0
|
|
|
|
||
| 17.11.2011, 12:27 | ||
|
но эта не картинка, а пиктограмма
![]() я про неё написал на 2-й странице этой темы
0
|
||
|
8 / 8 / 0
Регистрация: 19.04.2011
Сообщений: 102
|
|
| 17.11.2011, 16:19 [ТС] | |
|
Ну дак у меня нарисована картинка
Добавлено через 1 минуту Здесь изображение не нужно Добавлено через 1 минуту А если хочешь изображение то просто создать свойство в классе компонента типа TImage.
0
|
|
|
|
|
| 17.11.2011, 16:22 | |
|
если бы посмотрели на мой компонент, то там уже это свойство есть.
0
|
|
|
|
|
| 17.11.2011, 21:26 | |
|
Провозившись с компонентом, решил залить свой вариант TMyGraphicControl для C++ Builder 6, представляющий собой статическую картинку на форме. При кидании компонента на форму появится картинка, которая уже вшита в компонент, но при этом есть возможность её поменять на свою через свойство Picture.
Компонент залил с целью, чтобы кто-то из заинтересовавшихся смог посмотреть и возможно исправить и выложить полностью рабочий вариант этого компонента и чтобы потом новички смогли создавать свои компоненты, используя его как пример. Последовательность шагов, необходимых для нормальной установки компонента: 1) Открыть MyComponents.bpk 2) Зайти в Tools->Environment Options->Library и добавить путь до папки, в которую был распакован архив. Этот шаг нужно выполнить в случае, когда архив распаковывается в папку, о которой не знает билдер. Если этот шаг пропустить, то может возникнуть такая ситуация, когда билдер будет требовать MyGraphicControl. 3) Если в билдере уже установлен компонент с названием класса TMyGraphicControl, то зайдите в Component->Install Packages и удалите Package (кнопка Remove), в котором находится этот компонент. 4) Нажать Project->Build All Projects 5) В окошке Package нажать Compile и затем Install. 6) Установка компонента закончена, перезапускаем билдер. В самом проекте на форму кидаем компонент TMyGraphicControl из вкладки Samples. На форме появится картинка. Пробуем запустить программу. Если во время запуска появится ошибка: "отсутствует файл TMyGraphicControl1.bpl", то идём в Project->Options->Packages и убираем галочку с "Build with runtime packages" либо в самом конце "поля с пакетами" стираем слово "TMyGraphicControl". Было очень хорошо, если б кто-нибудь рассказал, как избавиться от этой проблемы. Примечание: при динамическом создании экземпляров TMyGraphicControl, картинка не будет автоматом появляться, тут придется уже загружать свою картинку, используя Picture->LoadFromFile. Потравив много времени, тестируя разными способами компонент, я понял, что не возможно автоматом при динамическом создании экземпляра TMyGraphicControl отобразить картинку на форме в случае, когда проект скомпилирован с выключенной галочкой "build with runtime packages", и сама программа размещена на компьютере, на котором не установлен билдер. Вшитая картинка прописана в .rc-файле
0
|
|
|
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
|
|||||||||||||||||
| 17.11.2011, 22:38 | |||||||||||||||||
|
Добавлено через 22 минуты
Если оставлять процедуру PictureChanged, то желательно использовать его с bool AutoSize. И объявление
1
|
|||||||||||||||||
|
|
||||||||||||||
| 18.11.2011, 20:02 | ||||||||||||||
|
DefineTrueFalse Спасибо за замечания, особенно за
Добавил ещё AutoSize.
![]()
Проблемы и решения, которые у меня возникли при разработке компонента: 1) Ситуация: удалил bpl-файл компоненты. При следующем запуске Билдер спросил: "Не найден bpl файл. Попробовать загрузить его при следующем запуске?", и вы ответили: "Нет". После этого Билдер перестал загружать Package с компонентом при создании нового приложения (т.е. компонент перестал быть отображаться на палитре компонентов). Решение: Закройте все открытые проекты в Билдере. Щелкните на Compononet->Install Packages. Должно появится окно с названием "Project options for Default.exe". Активируйте Package. Click Ok. Затем, не закрывая билдер, создайте новое приложение (File->New->Application). Закройте билдер и снова запустите. Вуаля, компонент на месте. 2) Регистрирую компонент так, чтобы он появлялся, например, на вкладке "MyControls", а он все равно находится на другой вкладке:
0
|
||||||||||||||
|
|
|
| 18.11.2011, 20:13 | |
|
DefineTrueFalse Случаем, не возникало у Вас такое исключение?.
Оно возникает, когда в параметрах запуска компоненты (Run->Parameters) указываю в Host Application путь до bcb.exe. И когда пытаюсь отладить компоненту, при запуске оно вылазит.
0
|
|
|
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
|
|
| 18.11.2011, 22:37 | |
|
Не думаю, что стоит использовать билдер, как хост приложение. Тогда уже создайте программу с использованием большинства функций компонента и указывайте его. А так хз что может с памятью происходить.
0
|
|
| 18.11.2011, 22:37 | |
|
Анимация визуальных компонентов Траблы с размещением визуальных компонентов Создание собственных визуальных компонентов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|