Компонент TChar: битва с разметкой

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Компонент TChar: битва с разметкой

Сообщение dilloYa » 28.03.2013 14:47:09

В использовании компонента как графопостроителя проблем нет, нет проблем с настройкой отображения графиков, их типов, видов, названий графиков, подписей осей, цветов, рамок, сеток, ориентации.. Но я уже на два дня мертво зависла над попытками изменить разметку осей и привести ее к нужному виду. А требуется не много. По оси абсцисс я использую целочисленные данные, поэтому мне не нужно дробить разметку на дроби, когда данных еще не много. Как бы по идее (достаточной документации не нашла), это задается свойством interval оси и логичнее всего опцией nicesteps, что вроде как означает предпочитаемый шаг. Пишу шаблон 1|5|10, но результат точно такой же как и в случае 0.1|0.5|1.0. В общем я докомбинировалась со свойством interval и перестала вообще понимать его функцию. Так же не смогла добиться того, чтобы при начальном отображении, когда данных никаких еще нет, он не показывал отрицательные значения осей, так как они не будут использоваться.. И еще, есть ли возможность в разметке осей использовать только данные точек из которых график строится? Такая проблема
Аватара пользователя
dilloYa
новенький
 
Сообщения: 15
Зарегистрирован: 21.01.2013 17:55:50

Re: Компонент TChar: битва с разметкой

Сообщение Ask » 28.03.2013 17:20:16

[2Admin: просьба исправить TChar на TChart в названии темы, чтобы она нормально искалась поисковиками]

Было бы желательно привести маленький пример приложения, на котором можно видеть перечисленные проблемы.

Пишу шаблон 1|5|10, но результат точно такой же как и в случае 0.1|0.5|1.0.

Множители в NiceSteps означают допустимые коэффициенты при степени 10,
так что умножать их на 10 действительно бесполезно.
Например, установив NiceSteps="1" мы разрешим разметку "1,2,3,4...10" но запретим "0,5,10,15..."
Напрямую запретить именно шаги меньше 1 нельзя, потому что при достаточно большом зуме
это приведёт к отсутствии резметки.
Можно указать достаточно большой MinStep таким образом, чтобы при параметрах по умолчанию
дробная разметка не возникала.

когда данных никаких еще нет, он не показывал отрицательные значения осей, так как они не будут использоваться

Можо использовать Chart.Extent или Axis.Range

в разметке осей использовать только данные точек из которых график строится?

Не понял вопроса -- нужно рисовать линии разметки не равномерно, а в точках данных?
Это легко сделать -- см. axisdemo
Если нужно что-то другое -- уточни.

Вообще, рекомендую почитать документацию и посмотреть демки -- там, конечно, не всё есть,
но многие моменты показаны.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Компонент TChar: битва с разметкой

Сообщение dilloYa » 30.03.2013 06:57:08

Спасибо за советы и рекомендации, Ask, особенно за axisdemo. Я и не знала что у меня под носом столько примеров использования чарта лежит. В общем проблему свою решила. Избавиться от дробей в разметке достаточно легко. В свойстве Chart.Extent.XMax (мне нужна ось x) я задала такое значение, при котором перестает отображаться дробная разметка. А когда значения точек по оси начинают превышать максимум, меняю значение XMax на максимум точки. Этим же способом решается и проблема стартового вида, как вы и подсказали.
Аватара пользователя
dilloYa
новенький
 
Сообщения: 15
Зарегистрирован: 21.01.2013 17:55:50


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 240

Рейтинг@Mail.ru