|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.02.2009, 05:53 | #1 |
Пользователь
Регистрация: 08.01.2007
Сообщений: 30
|
Перекрытие нескольких TImage
Создаю программно несколько компонентов TImage и вывожу изображение на канву. Почти все перекрывают друг друга.
Проблемы: 1. Свободные части Image тоже окрашиваются. Хотя нужно чтобы они оставались прозрачными. 2. При перекрытии, на события реагирует только самый верхний Image, причём той зоной, которая должна быть прозрачной. Подскажите пожалуйста, возможно ли избавиться от этих недостатков, если ДА, то как? Ну или посоветуйте, как это воплотить в жизнь(с каким компонентом или что-либо другое).
Я не волшебник, я только учусь!
Последний раз редактировалось Саня; 04.02.2009 в 08:06. |
04.02.2009, 08:06 | #2 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
Св-во transparent в true у имиджа поставили?
|
04.02.2009, 09:32 | #3 | |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
вот тут глянь : http://www.delphikingdom.com/asp/ans...?IDAnswer=1891
неточно по твоей проблеме - но модернизировать можно ... Или вот : Цитата:
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
|
04.02.2009, 10:29 | #4 |
Пользователь
Регистрация: 08.01.2007
Сообщений: 30
|
С этим уже разобрался (кажется). Надо было рисовать не Image1.Canvas, а на Bitmap.Canvas, тогда и transparent нормально себя чувствует.
Я не волшебник, я только учусь!
|
04.02.2009, 10:39 | #5 | |
Пользователь
Регистрация: 08.01.2007
Сообщений: 30
|
Цитата:
Image1 это прямоугольник. Правильно? У меня на форме они накладываются один на другой со смещением. Так вот если я хочу кликнуть по нижнему (он виден) клик обрабатывает тот, который сверху (он его перекрывает прозрачной областью). Так есть возможность обработать такой клик нормально, т.е. как клик на нижнем Image? Или надо писать свой компонент?
Я не волшебник, я только учусь!
|
|
04.02.2009, 10:55 | #6 |
Форумчанин
Регистрация: 24.07.2008
Сообщений: 279
|
Обрабатывай NC_HITTEST для каждого TImage (А лучше создай наследника), с его помощью можно сделать "пустые" области.
Сказал и загрустил от бесспорности своей правоты.
|
04.02.2009, 11:43 | #7 | ||
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
Цитата:
Не очень понятно вот эта фраза Цитата:
Последний раз редактировалось SERG1980; 04.02.2009 в 11:49. |
||
04.02.2009, 11:59 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А если так: По клику проверяем если цвет куда мыша попала = транспаренту то переслать клик контролу под ним.
I'm learning to live...
|
05.02.2009, 06:38 | #9 |
Пользователь
Регистрация: 08.01.2007
Сообщений: 30
|
Вот примерно то, о чем я спрашиваю:
Код:
Я не волшебник, я только учусь!
|
05.02.2009, 06:45 | #10 |
Пользователь
Регистрация: 08.01.2007
Сообщений: 30
|
А у меня есть к Вам вопрос: каким образом можно сделать "пустые" области, чтобы они не реагировали на события?
Я не волшебник, я только учусь!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TImage | maxvodo.dll | Мультимедиа в Delphi | 3 | 24.10.2008 21:29 |
TImage в TImage | One.Love | Общие вопросы Delphi | 15 | 22.09.2008 19:37 |
TImage | Killbrum | Помощь студентам | 8 | 27.08.2008 22:40 |
Timage | RealSHELS | Общие вопросы Delphi | 7 | 05.05.2008 20:12 |
TImage | Andrey9392 | Компоненты Delphi | 6 | 06.04.2007 10:43 |