Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Вопросы по TChart: 1) AddNull в TGanttSeries; 2) refresh TChart   Найти похожие ветки 

 
vlad2   (2012-08-15 13:41) [0]

Есть две проблемы.
Проблема 1.
Имеется, например, 3 серии. В 1-й нет одного значения, которое есть во 2 и 3-й сериях. В результате всё строится правильно, но на оси нет метки (Label) с этим значением (остальные есть, идут подряд нормально).
Для диаграмм (TBarSeries) нашел такое решение: добавляю в серию 1 пустую запись с недостающим значением через метод AddNull. В результате всё построено так же, но появилась нужная метка.
Для TGanttSeries такой номер не прошёл. После добавления пустой записи в серию (AddNull благополучно прошёл, не обругал) при построении графика вылезает ошибка: "List index out of bounds". Метод AddY даёт то же самое.
Вопросы по TGanttSeries и TBarSeries:
1. Как сделать (кроме AddNull), чтобы на оси обязательно были метки, если соответствующее значение есть хотя бы в одной серии?
2. Можно ли и как пользоваться AddNull в сериях TGanttSeries?

Проблема 2.
Старая проблема в runtime: после изменений некоторых свойств элементов графика (например, осей, легенды, коррекция размеров и т.п.) ПОСЛЕ создания серий TChart не обновляется. На принудительное использование методов типа Refresh, Repaint, Update ... не реагирует.
Нашёл только один способ обновления: CopyToClipboardBitmap, он работает, но если графиков строится подряд больше сотни, это заметно долго.
Неужели нет более "цивилизованного" и быстрого метода обновления TChart?
Если нужен конкретный пример, когда не работает, - изменение ColorWidth легенды после построения серий.
Спасибо.


 
AV ©   (2012-08-15 13:48) [1]

код показывайте или тестовый пример


 
vlad2   (2012-08-15 15:30) [2]


> код показывайте или тестовый пример

К сожалению, этого, видимо, нельзя, т.к. программирую на C++ Builder. А вопрос задал здесь, не найдя ответов на сишных форумах, он общий, безотносительно к языку.
Схема примерно такая:

1. После того, как заполнил серии Гантта данными, добавляю одну пустую запись в 1 серию. После этого при попытке обратиться к CopyToClipboardBitmap возникает ошибка "List index out of bounds".

2. Изменение ColorWidth легенды должно приводить к изменению NumRows легенды, чего никогда не произойдёт, если не обновлять каждый раз TChart.


 
sniknik ©   (2012-08-15 16:48) [3]

> List index out of bounds
ошибка вполне определенная, обращение в список "за пределы" существующих записей этого списка.


 
vlad2   (2012-08-15 18:23) [4]

Спасибо, sniknik ©, Гугл-переводчик даёт то же самое :).


 
Inovet ©   (2012-08-15 18:27) [5]

> [4] vlad2   (15.08.12 18:23)
> Гугл-переводчик даёт то же самое :).

Так и смотри значение индекса перед вызовом.


 
vlad2   (2012-08-15 18:42) [6]


> Так и смотри значение индекса перед вызовом


Какого индекса?

Перед вызовом chart.Series[k].AddNull()  chart.Series[k].Count = 30
после - chart.Series[k].Count = 31, а после вызова chart.CopyToClipboardBitmap() - ошибка "List index out of bounds (30)".

Перед вызовом chart.Series[k].AddGantt(...)  chart.Series[k].Count = 30
после - тоже chart.Series[k].Count = 31, а после вызова chart.CopyToClipboardBitmap() - никакой ошибки нет.

Вот я и не могу понять, в чём дело. Косяк в TGanttSeries при AddNull? В TBarSeries этого же не происходит.


 
Германн ©   (2012-08-16 02:33) [7]


> vlad2   (15.08.12 18:42) [6]
>
>
> > Так и смотри значение индекса перед вызовом
>
>
> Какого индекса?

А отладчик для чего?
Поставь ВР на строке chart.CopyToClipboardBitmap и нажми F7.


 
vlad2   (2012-08-16 17:00) [8]


> Поставь ВР на строке chart.CopyToClipboardBitmap и нажми
> F7

Если бы было так просто, не обращался бы на форум. CopyToClipboardBitmap - функция предка TChart, её код мне недоступен.



Страницы: 1 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
15-1454505647
кгшзх
2016-02-03 16:20
2017.01.15
ПДД баттл


4-1266266901
Pavel
2010-02-15 23:48
2017.01.15
Перевод в "спящий" режим


15-1452881433
xayam
2016-01-15 21:10
2017.01.15
Приглашаю на шахматный турнир Delphi Masters 4 (2016)


15-1453277297
Dimka Maslov
2016-01-20 11:08
2017.01.15
Немного музыки


15-1457422493
Pavia
2016-03-08 10:34
2017.01.15
C 8 марта!