Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.114.31] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Конечно, в Delphi есть достаточно мощный компонент TChart для построения любых графиков.
Но бывает необходимо что-то более простое без претензий и особых наворотов. Предлагается вашему вниманию компонент для Delphi, который рисует линейные графики. Возможности. - Кривых на графике может быть более одной (кривые выводятся только в run-time заполнением массивов значений точек). - Автомасштабирование. При добавлении точек в кривую и выходе их значений за установленные максимум или минимум по обеим осям происходит пересчет максимальных и/или минимальных значений. - Ручное масштабирование графика мышкой или с клавиатуры (после формирования всех кривых). - Панорамирование графика при масштабе > 100% - сдвиг по всем четырем направлениям также мышкой или с клавиатуры. - "Датализация" - два режима отображения кривых. - Отображение значений точек в виде хинта при нахождении курсора мыши около точки. - Наличие "навигатора" - отдельное полупрозрачное окнце, отображающее весь график и которое можно таскать мышкой по экрану. Есть возможность показывать или скрывать это окно. - Могут изменяться: толщина кривых, цвет компонента, цвет кривых, цвет осей, цвет и видимость сетки графика. При перерисовке (а это может происходить очень часто, например, при панорамировании, добавлении точек) график не дергается. Исходные тексты и пример использования компонента прилагается. Прикреплённый файлgraph_w_e.zip (56.5 Кбайт, скачиваний: 2612) |
Сообщ.
#2
,
|
|
|
Цитата sansans @ Предлагается вашему вниманию компонент для Delphi Читая такое в первую очередь хочется увидеть что это такое, а потом уже если понравится как-то с этим связываться. Ты бы скриншоты приложил... |
Сообщ.
#3
,
|
|
|
Не понял как на этом форуме прикреплять более одного файла, поэтому только один скришот даю.
А еще снимки можно посмотреть здесь: http://san-46.narod.ru/GraphLinear.htm Прикреплённый файлclip01.gif (12.96 Кбайт, скачиваний: 3308) |
Сообщ.
#4
,
|
|
|
>[Error] Unit1.pas(39): Undeclared identifier: 'TFormatSettings'
|
Сообщ.
#5
,
|
|
|
Какая версия Delphi? Пример и компонент компилировался в D7. Там все в порядке. TFormatSettings объявлен в SysUtils.
|
Сообщ.
#6
,
|
|
|
Delphi 6
Добавлено Единственное место где нашёл версию Delphi - это на главной странице сайта внизу |
Сообщ.
#7
,
|
|
|
Ну, чем я помогу? Насколько помню в D6 тоже есть TFormatSettings. Можно и выбросить из Unit1 эту структуру. Тогда придется менять функцию StrToFloatDef (тоже реализована в SysUtils), с помощью которой происходит преобразование чисел, читаемых из текстового файла.
Или не применять тот текстовый файл (ht_02.htl). Он всего лишь для примера большого количества точек графика. "Единственное место где нашёл версию Delphi - это на главной странице сайта внизу". Так все же есть? Пример есть пример. Можно сделать свой проект и разместить на его форме компонент. Он же не сложный в использовании. |
Сообщ.
#8
,
|
|
|
Не корекнтное отобажение первого графика в начале, где маленькие значения.
Маштаб не соответствует отображаемым данным |
Сообщ.
#9
,
|
|
|
А конкретно, в чем не корректность?
И, опять же, как определено, что "масштаб не соответствует..."? А то хотелось бы исправить, только непонятно что. |
Сообщ.
#10
,
|
|
|
Не удаётся посмотреть на начальные значения, поскольку иасштаб очень большой а значения очень маленькие. Приходится многократно увеличивать изображение, при этом оно увеличивается и по вертикили и по горизонтали и в итоге, когда всё же изображение достигло более-менее читабельного размера (M=9000) ширина при этом огромная.
|
Сообщ.
#11
,
|
|
|
Особенность данных, которые отображаются на графике.
Для таких случаях, видимо, надо иметь возможность изменять масштаб отдельно по горизонтальной и вертикальной осям. Но это уже в другой жизни. Для моих приложений компонент и с его теперешними возможностями достаточен. |
Сообщ.
#12
,
|
|
|
Форма с вашим компонентом - 422 кб
Форма с TChart - 600 кб Лично я выбираю TChart, поскольку возможности просто огромные, а размер не на много больше. Думаю что изобретение велосипеда никому не нужно. |
Сообщ.
#13
,
|
|
|
Каждый имеет право на собственное мнение. Спасибо за конструктивную критику.
Но, ИМХО, не в размере дело, а в простоте. Кому то может и пригодится именно в таком воплощении. Как было отмечено, для моих проектов компонент был нужен именно в этой реализации. |
Сообщ.
#14
,
|
|
|
Цитата sansans @ - Кривых на графике может быть более одной (кривые выводятся только в run-time заполнением массивов значений точек). - Автомасштабирование. Как оно ведет себя, когда точек несколько тысяч? TChart тормозит жутко, приходится делать его невидимым, вводить точки, делать видимым. |
Сообщ.
#15
,
|
|
|
В текстовом файле примера, из которого извлекаются точки, этих точек 1433.
Увеличил я их количество в четыре раза, получилось более 5700 точек. И что в первом, что во втором, никакой разницы в скорости вывода не заметил. Наверное, скорость еще от железа зависит. Алгоритм выборки точек в конкретных задачах тоже ведь может быть медленным, он и будет узким местом при отображении кривых во время выполнения. А сам компонент выводит точки максимально быстро. Прикреплённый файлclip02.gif (17.15 Кбайт, скачиваний: 3006) |