Форум: "Основная";
Поиск по всему сайту: 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.013 c
1-75548           Анатолий              2002-01-03 05:42  2002.01.24  
Отчёт в Delphi


7-75691           BigFoot               2001-10-10 19:22  2002.01.24  
Service


14-75676          petr_v_a              2001-11-22 17:32  2002.01.24  
грабли


3-75525           frostbite             2001-12-21 14:48  2002.01.24  
Определение структуры БД


1-75555           Deadlock              2002-01-06 03:32  2002.01.24  
Ну ОЧЕНЬ нужно