Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Можно ли создать объект...   Найти похожие ветки 

 
Shopot ©   (2005-11-09 21:30) [0]

Здравствуйте. Можно ли создать такой визуальный объект, чтобы он представлялсобой кольцо, некоторой толщины, и отрисовывался на форме. Но при клике мыши по самому кольцу, выполнялся бы метод OnMouseClick объекта, а при клике во внутренней его области, OnMouseClick формы? Как примерно можно это сделать и какой класс взять родителем?


 
злобная танька   (2005-11-09 21:35) [1]

а шо мешает нарисовать кольцо на имейдже с прозрачным фоном и вызывать Form1Click при нажатии во внутренней области?


 
Shopot ©   (2005-11-09 21:47) [2]

А как отследить эту область? Перебором? Долго, таких объектов если много и быстро по ним щелкать, все тормозить будет. И потом события должны вызываться автоматом, а не где то в процедуре определения границ области кольца, повешенной на OnMouseClick imag"а.


 
злобная танька   (2005-11-09 21:53) [3]

нафига перебором?
можно цвет например проверять в том же имедже
if image1.canvas.pixels[X, Y] = yourtransparentcolor then Form1Click
не думаю что ето будет работать слишком медленно.

а насчет контрола я не знаю.. там из winapi функция какая то была которая окно делала произвольной формы.. не знаю можно ли с дырками.. наверно можно. поищи на тему "окно непрямоугольной формы" но имхо вариант с имеджем в 1000 раз проще и лучше.


 
злобная танька   (2005-11-09 21:56) [4]

ишо можно расстояние от центра дырки считать и сравнивать с ее радиусом


 
Shopot ©   (2005-11-09 22:03) [5]

А если 2 объекта перекрываются или одно кольцо находится поверх или внутри другого. Как определить метод того объекта, над которым произошел click? Ведь имаджи квадратные, и который создан позже будет всегда поверх того, который появился раньше.


 
злобная танька   (2005-11-09 22:23) [6]

а можно вопрос нафига вообще эти кольца нужны?
может есть другое решение? :)


 
vvvaaa   (2005-11-09 22:32) [7]

Основные функции для создания не прямоугольных контролов:
CreateRectRgn, CreateEllipticRgn и т.д см. хелп
CombineRgn
SetWindowRgn

Можешь хоть весь контрол дырками изтыкать. А рисовать кольца можно на любом контроле, главное чтоб Canvas был.


 
Zeqfreed ©   (2005-11-09 23:15) [8]

vvvaaa   (09.11.05 22:32) [7]
Щас пойдут просьбы примеров. Справка давно ведь уже не рулит.



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
4-1128098866
kDenis
2005-09-30 20:47
2005.12.04
Как обновить изображение нарисованное на окне?


6-1124210545
Doplhin1
2005-08-16 20:42
2005.12.04
Chat


2-1131942153
john_mag
2005-11-14 07:22
2005.12.04
Bookmarks


14-1132163491
Гарри Поттер
2005-11-16 20:51
2005.12.04
Процессор Pentium IV 516 oem (S775, 2933MHz/533MHz/1MB, EM64T)


3-1129836987
lra
2005-10-20 23:36
2005.12.04
выборка заданного количества записей с помощью sql-запроса