Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Вниз

Создание нестандартного компонента 


ctapik-net   (2002-01-05 09:28) [0]

Привет знатоки. Вот появилась следующая проблема. У меня выводится на форме граф необходимо при передвижении мышки по форме подсвечивать линии соединяющие 2 вершины если мышка находится над ней. Как это можно сделать? Для меня лучшее решение, если вы подскажете как можно создать компонент с шириной 2-3 пиксела и углом наклона alpha. Также необходимо что бы были события OnMouseMove, OnClick, OnDblClick. Заранее благодарен.



valery_f   (2002-01-05 11:50) [1]

Компонент-линия? Не проще ли рисовать все на самой форме? А при наезде на линии перерисовывать только их?



Relaxoid   (2002-01-05 12:20) [2]

Когда я рисовал графы, я рисовал их методами Canvas. Отлавливал OnMouseMove, OnMouseDown(для передвижения вершины). Ребро можно находить по координатам начала и конца, это ведь прямая у тебя наверное.



KSergey   (2002-01-05 13:30) [3]

Не, ну можно, конечно, попытаться состряпать потомка TGraphicControl, но это запаришься! На сколько я понимаю, придется корячить нестандартную границу (а к стати, можно ли ее сделать для не потомка TWinControl? это еще вопрос; ну а тогда придется от TWinControl наследовать)
Вот только стоит ли оно того?
Хотя в принципе есть же прозрачные Label. Можно глянуть как сделаны. Вот только координаты для такого компонента (элемента) все равно буду задаваться большим прямоугольником, так что пожалуй лучше последовать советам, данным выше, и рисовать все что нужно просто на форме. Что очень просто, надо заметить.



Relaxoid   (2002-01-05 14:17) [4]

Я и говорю, курсовую я так делал. У каждой вершины сохранял координаты вершины и смотрел, попадают ли координаты мыши в круг или по уравнению прямой находил ребро.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.023 c
1-75613           Трынкин Сергей        2002-01-08 11:28  2002.01.24  
Подскажите пожалуйста где взять ADOExpress Update Pack 1


6-75633           Stepan                2001-11-01 22:23  2002.01.24  
Поиск по сети сервера типа TServerSocket


1-75584           Андрей Сенченко       2002-01-05 13:50  2002.01.24  
Помогите с ловлей Handl-ов


14-75654          Марина                2001-11-28 09:12  2002.01.24  
Windows XP


1-75594           Stix                  2002-01-07 21:56  2002.01.24  
Русский HELP по Delphi 6