Teechart не сохраняет параметры

отредактировано 17:10 Раздел: FastCube
День добрый!

Задаю параметры диаграммы в RunTime через ChartEditor1.Execute; (Teechart 8)

При любом изменении размера окна, диаграмма "теряет" все сделанные настройки.

Что делать?

Комментарии

  • отредактировано 17:10
    Приветствую.

    Если Вы устанавливаете какие-либо нестандартные для диаграмы FastCube параметры, то должы это делать в событии OnChartFilled.
    Это событие вызывается каждый раз после каких-либо изменений.
    Т.е. Вы можете сохранить нужные свойства после вызова ChartEditor1.Execute, а затем в OnChartFilled устанавливать их.

    С уважением, Олег.
  • отредактировано 17:10
    Олег, просто раз уж мы используем TeeChart, то разумно было бы дать пользователю возможность наслаждаться всеми ее преимуществами.

    И какие параметры диаграммы FastCube являются стандартными, а какие - нет?
    Она же от TeeChart наследуется, значит все свойства родителя (TeeChart) являются стандартными.

    В общем, как сделать так, чтобы ВСЕ настройки TeeChart сохранялись? :) Может быть есть какой-то простой способ это делать?

    И еше вопрос: почему сортировка данных в диаграмме не "следит" за изменением сортировки в таблице?
    Не каждый пользователь догадается, как в настройках TeeChart поменять сортировку по оси X.

    Или есть какие-то хитрости, которых я не знаю?

    Заранее спасибо.

    С уважением, Кирилл.
  • отредактировано 17:10
    Чуть-чуть разобрался - теряются только настройки Series. Как будто Series пересоздаются при изменении размера диаграммы - зачем?
  • отредактировано 17:10
    Приветствую.

    "Стандартными" являются те параметры, которые FasrCube устанавливает непосредственно сам и которые пользователь может менять средствами FastCube.
    Отслеживать, сохранять и восстанавливать всё многообразие свойств TeeChart мы не планируем, а предоставляем разработчику возможность управлять этим процессом самостоятельно.
    Да, вся начинка диаграммы, в том числе и Series создаются заново, при поступлении от слайса сообщения о любых изменениях.
    Вы можете отключить реакцию диаграммы, переведя её в режим заморозки - свойство Frozen.

    На данный момент обмен сообщениями между гридом (таблицей), слайсом и диаграммой таков, что изменение размера грида вызывает активацию посылки слайсом сообщений о его изменении, что и инициирует пересоздание диаграммы. Вам надо исходить из факта, что OnChartFilled вызывается часто и неоднократно после изменения.

    Хитростей по проблеме сортировки нет, на сегодняшний момент принцип выдачи данных диаграмме для построения оси таков, что он не учитывает сортировку в гриде. К сожалению в текущей версии измененять это не планируется.
    В версии 2 всё будет корректно, в том числе и сбалансированный обмен событиями.

    С уважением, Олег.

  • отредактировано 17:10
    Олег, спасибо за ответ.

    Сориентируйте пожалуйста по срокам выхода версии, в которой все будет корректно?
  • отредактировано 17:10
    написал: »
    Вы можете отключить реакцию диаграммы, переведя её в режим заморозки - свойство Frozen.

    Олег, если "заморозить" диаграмму, то ею можно будет управлять в "ручном" режиме? Т.е. сделать кнопку типа "Обновить данные" для загрузки новых данных из слайса. И чтобы при этом все настройки серии (TeeChart-овские) сохранялись?
    написал: »
    Хитростей по проблеме сортировки нет, на сегодняшний момент принцип выдачи данных диаграмме для построения оси таков, что он не учитывает сортировку в гриде.

    Хорошо, а как тогда сделать, чтобы значения всегда сортировались по убыванию?
    Или как сделать так, чтобы пользователь мог выбрать вид сортировки (с сохранением его в какой-то переменной), а он применялся бы каждй раз при перерисовке диаграмы (раз уж это неизбежно)?

    Попытка воспользоваться событием OnSeriesCreated не увенчалась успехом.


    И сориентируйте пожалуйста по срокам выхода версии 2.0 - месяц, год, тысячелетие :) - мне нужно знать, чтобы планировать свою работу. Спасибо.
  • отредактировано 17:10
    Приветствую.

    "Заморозка" отключает реакцию диаграммы на изменения в кубе-слайсе.
    Обновление данных вызовет перестройку серий в диаграмме, что соответственно сбросит все нестандартные настройки.

    По поводу сортировки - на данный момент она явна заданы процедурой выдачи данных от слайса. При этом обход ведётся в соответствии с естественным порядком значений полей в измерениях в направлении возрастания. Это процедура работает на первичной структуре, независящей от типа и направления сортировки в оси грида.
    Изменить сортировку (порядок значений) в серии можно изменить либо изменив порядок выдачи данных (переделка описанной выше процедуры в версии 1 - в планах стоит, но не на первом месте), либо средствами TeeChart перестроить созданную и заполненную данными серию в событии OnChartFilled (я думаю, что это возможно, но это уже вопрос знания TeeChart).

    Версия 2 - в этом году точно, надеемся летом.

    С уважением, Олег.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.