Помощь - Поиск - Пользователи - Календарь
Полная версия: Графики в Tchart
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
HEPB
Доброго времени суток!
Требуется примерно следующее реализовать на Delphi. Используя компонент TChart.
1) Библиотека процессов. Процесс – некоторая ломанная ступенчатая функция от времени. То есть функция либо параллельна оси времени, либо перпендикулярна к ней. Начало процесса в нулевой момент времени. Библиотека процессов хранится в виде координат в базе данных. В чем сложность для меня? Для библиотеки нужно сделать редактор, где бы пользователь создавал новый процесс/редактировал существующий. Для задания точек использовать как график (TChart) так и значения точек в Grid’е. Реализовать стирание отдельных линий, дорисовка процесса сразу буквой "Г", при этом с прилипанием к точке в области которой был щелчок, "схватывание" вершин и перемещение в другое место.
2) Пуск процессов. Здесь тот же TChart. Но время на осях реальное. С датой и временем. Для пуска процесса пользователь выбирает один из процессов из библиотеки процессов и вставляет его в график, указав начало процесса на графике, скажем 2 февраля в 7:00. При этом на этом графике могут уже быть другие процессы, вставленные ранее. То есть тут необходима проверка, чтобы новый (вставляемый) процесс не перекрывал старые. Идеальная реализация видется в подобии Автокаду. Вставка блока из библиотеки. То есть пока блок (процесс из библиотеки) окончательно не поставили, он волочится за мышкой, ища точку начала, прилипая к ранее вставленным процессам, точнее к их вершинам. Но даже если его поставили, должна быть возможность его удалить целиком (во время текущей сессии редактирования, так как потом он уже не будет привязан к библиотеки а его составляющие отрезки заживут каждый своей жизнью) или перенести на другую дату. После того как его вставили, он превращается в набор отрезков и теперь они становятся для редактирования. Например, сломалось какое оборудование, процесс становится не нужным, нужно позволить его обрезать. То есть сделать нулем в какой-то момент времени, конец его отсечь. Также должна быть возможность продления графика, то есть разрыв графика в некий момент времени, удлинение отрезка и дорисовка окончания.
У кого есть какие-нибудь идеи? Может кто-то нечто подобное делал. Любые идеи, советы
hardcase
А что не ясно? Как работать с TChart?
График в нём - это объект класса TSeries. В нём создаются точки и прочее.

У тебя хоть какой-то код есть или только теоретические изыскания?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.