Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Подскажите компонент для сетки


Автор: jingoCSS 15.1.2010, 16:42
С помощью какого компонента можно реализовать такую сетку?

Автор: artsb 16.1.2010, 12:47
Используйте TStringGrid или TDrawGrid. Или можете рисовать на битмапе, а потом выводить его в Image или ещё куда-нибудь.

Автор: jingoCSS 16.1.2010, 14:19
А эти компоненты стандартные?? (я в Delphi 7 работаю) Эту сетку можно масштабировать, рисунок врядли подойдёт.

Автор: artsb 16.1.2010, 14:23
Цитата(jingoCSS @  16.1.2010,  14:19 Найти цитируемый пост)
А эти компоненты стандартные?? 

Да.
Цитата(jingoCSS @  16.1.2010,  14:19 Найти цитируемый пост)
Эту сетку можно масштабировать, рисунок врядли подойдёт. 

Почему же. Если постараться, можно всё сделать.

Автор: jingoCSS 16.1.2010, 14:25
А, всё, нашёл эти grid-ы, мож покатят. Не знаешь на них можно графики рисовать ? ссылки на инфу по этим gridam нет?

Автор: Демо 16.1.2010, 15:31
Цитата(jingoCSS @  16.1.2010,  14:25 Найти цитируемый пост)
А, всё, нашёл эти grid-ы, мож покатят. Не знаешь на них можно графики рисовать ? ссылки на инфу по этим gridam нет?


TDrawGrid не предназначет для рисования графиков.
На самом деле сетку можно просто отрисовывать на канве и пересчитывать при масштабировании.
Также вместо сетки можно использовать Bitmap, отрисовывая его вместо фона.

Автор: artsb 16.1.2010, 17:35
jingoCSS, у вас задача какая? Просто отобразить график? Или нужно, чтобы он был кликабельный?
Если просто отобразить, то проще будет (как я уже говорил и как говорит Демо) использовать Битмап. Например, можно разместить ScrollBox, а в него положить Image. Это чтобы прокрутка была smile Теперь отрисовываете всё что вам нужно во временном Битмапе и после этого выводите его в Image (Image1.Picture.Bitmap.Assign(tmpBitmap)).

Если же нужна поддержка кликабельности, то лучше юзать TStringGrid (ну или TDrawGrid). Так будет проще узнать где пользователь кликнул. Но суть в том же: рисуете всё что вам нужно во временном Битмапе, а потом проецируете его на сетку Грида. Здесь важный момент - учитывать прокрутку Грида, а не то будет куча артефактов.

Автор: jingoCSS 16.1.2010, 20:52
нет, кликабельность не нужна, главное нарисовать график (график примерно похож на кардиограмму сердца). Господа, спасибо за ответы, буду гуглить и пробывать, в случае чего опять появлюсь здесь.

Автор: jingoCSS 16.1.2010, 21:33
вот такое вот должно быть

Автор: artsb 16.1.2010, 21:34
Раз кликабельность не нужна, реализовывайте первый способ.

Автор: AntonN 16.1.2010, 22:04
если нужна кликабельность не нужно юзать Грид, он не предназначен для этого, какой толк знать в какой ячейке кликнули если линии кривые? Юзать так же битмап, рисовать на Painbox, у пейнбокса есть MouseDown. Зная координаты клика можно вычислить по какой линии щелкнули (мы же их нарисовали сами? значит все их точки нам известны). В крайнем случае рисовать линии разными цветами на маске и при клике на PaintBox смотреть какой цвет на координатах клика на маске

Автор: Демо 17.1.2010, 21:09
Вот ещё посмотри: http://forum.sources.ru/index.php?showtopic=282785

Автор: Dimonka2 18.1.2010, 12:14
Кладёшь TScrollBox, на него TPaintBox. Размер графику задаёшь через TScrollBox, а рисуешь и обрабатываешь клики на TPaintBox.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)