![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.03.2024
Сообщений: 19
|
![]()
Здравствуйте, уважаемые программисты!
У меня такой простой вопрос: создаю компонент на основе TImage. Хочу, чтоб при нажатии в инспекторе на свойство Picture картинка помещалась не на весь компонент, а только в какую-то его часть (ну или сохранялась в каком-то внутреннем битмапе. Может быть, кто-нибудь знает, как отловить событие загрузки файла в TImage? Пробовал изучить исходник TImage, даже создал его копию - так и не пойму, откуда берется это окошко при нажатии на свойство Picture и как перехватить загружаемую картинку. Рассматриваю вариант со сравнением двух битмапов: исходного и после запуска. Если отличаются - значит загрузили картинку. Но может кто-нибудь знает более простой путь? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,810
|
![]()
Обрабатывать OnChange у Picture
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
Смысл отлавливать это событие, если Вы загружаете картинку кодом, т.е. строкой или командой и знаете когда это произойдет. TBitmap - это отдельный объект и хранить его надо отдельно. Разберитесь со свойствами классов.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 30.03.2024
Сообщений: 19
|
![]()
нет, я загружаю эту картинку не кодом, а по нажатию на кнопку "..." Picture.
Да, событие OnChange, но оно срабатывает вообще для любого изменения фона компонента. Вообще, как оказалось, <компонент>.Canvas и <компонент>.Picture.Bitmap.Canvas - это одно и то же. То есть, Image не хранит загруженную картинку где-то в своих анналах, а сразу шлепает ее на канвас. Стало быть, нужно ее отловить до того, как она шлепнулась туда. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 30.03.2024
Сообщений: 19
|
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
А какой смысл отлавливать событие на стадии проектирования(Design-Time)? События обычно отлавливаются на стадии работы программы(Run- Time).
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 30.03.2024
Сообщений: 19
|
![]()
Смысл в том, что как только приложение запустилось, то картинка уже на канвасе. А как это произошло? Какой процесс за это отвечает? Хотелось бы получить эту картинку до того, как она там оказалась и перерисовать так, как мне надо. При этом хотелось бы, чтобы она перерисовалась еще на стадии проектирования. То есть, программист только добавил картинку, а она уже в нужном месте, а не на весь канвас.
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
Заранее подготовить картинку и загрузить в TImage. Заранее поставить разрешение, отступы и цвета те, которые Вам надо.
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 30.03.2024
Сообщений: 19
|
![]()
То есть, вы хотите сказать, что мне нужно загружать не полноценную картинку, а картинку содержащую часть картинки, чтобы содержательная часть оказалась на месте? Ну это скорее жест отчаяния, чем решение. А как же автоматизация? А что скажут люди? Тогда уж действовать так, как я указал вначале (копировать картинку и перерисовывать фон)
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 30.03.2024
Сообщений: 19
|
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отловить событие нажатия клавиши Esc? | dsapa | Microsoft Office Excel | 14 | 03.12.2016 14:27 |
Отловить уровень загрузки страницы Awesomium | sergeevpetro | C# (си шарп) | 1 | 21.07.2015 11:12 |
WM_QueryEndSession отловить событие | volod3000 | Win Api | 3 | 29.01.2015 20:23 |
как отловить событие hint? | max89 | Win Api | 0 | 23.07.2010 19:08 |
Как отловить событие wm_paste? | Romanych007 | Помощь студентам | 1 | 10.07.2010 20:42 |