Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2013, 18:12   #1
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию Динамическое добавление графиков (series) на TChart

К сожалению, нет времени писать подробно, поэтому суть.

Делаю метод хорд на делфях. Из знаний делфей - только школьные знания паскаля. Методом тыка всё сделал, но мне надо начертить процесс нахождения корня, т.е. отобразить поверх графика еще несколько одиночных линий.

Погуглив, я понял, что просто отдельные линии нарисовать на TChart-е нельзя (если можно скажите как), поэтому проблему планирую решить следующим образом: для рисования отдельной линии на TChart, добавлять новый "слой" (серию) графика, и рисовать на нем ровно одну линию. Получается, что одна линия - одна серия. Т.к. линий не планируется больше 10-20 рисовать, то это какое-никакое, но решение.

Вопрос: как в Делфях добалять серии динамически на объект TChart?
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 10.06.2013, 20:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В OnAfterDraw или OnBeforeDrawSeries можно рисовать линии на Chart.Canvas
Код:
procedure TForm1.Chart1BeforeDrawSeries(Sender: TObject);
begin
  Chart1.Canvas.Pen.Color:=clBlack;
  Chart1.Canvas.MoveTo(Chart1.ChartRect.Left+50,Chart1.ChartRect.Top);
  Chart1.Canvas.LineTo(Chart1.ChartRect.Left+150,Chart1.ChartRect.Bottom);
  Chart1.Canvas.MoveTo(Chart1.ChartRect.Left+50,Chart1.ChartRect.Top);
  Chart1.Canvas.LineTo(Chart1.ChartRect.Left+50,Chart1.ChartRect.Bottom);
end;
Если добавлять серию, то
Код:
  Series1:=TLineSeries.Create(Self);
  Chart1.AddSeries(Series1);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 10.06.2013 в 20:11.
Аватар вне форума Ответить с цитированием
Старый 10.06.2013, 20:55   #3
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
В OnAfterDraw или OnBeforeDrawSeries можно рисовать линии на Chart.Canvas
У данного варианта мне видится как минимум 2 минуса:

1) Canvas - он попиксельный, а мне бы координаты. Нет, конечно, можно без особых проблем замутить масштабирование, но это лишние заморочки
2) Не получается у меня нарисовать эти линии по нажатию кнопки. Видимо, дело в том, что код именно событии Chart1BeforeDrawSeries.

Цитата:
Если добавлять серию, то
Странно, пробовал тот же код пару часов назад, ничего не работало.

Спасибо, большое!
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TChart, динамическое добавление Series Nigadyai Помощь студентам 10 07.04.2013 10:29
Как изменить цвет Series TChart sergey_dmitrievich C++ Builder 6 30.09.2011 16:24
Как получить цвет точки в Series Компонента TChart tavrocotaps Общие вопросы Delphi 1 30.11.2009 12:49
подпись графиков на TChart cherry25 Компоненты Delphi 5 16.07.2009 08:42
Изменение вида Series в TChart ViNcHeStEr Помощь студентам 2 20.04.2009 16:17