Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Вниз

Вопросы по 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.047 c
15-1447436787
data
2015-11-13 20:46
2017.01.15
подскажите по my sql


15-1453406341
DayGaykin
2016-01-21 22:59
2017.01.15
Как отличить


2-1423778824
Aleks
2015-02-13 01:07
2017.01.15
получить список объектов в чужом окне


15-1448227801
Юрий
2015-11-23 00:30
2017.01.15
С днем рождения ! 23 ноября 2015 понедельник


15-1454880601
Юрий
2016-02-08 00:30
2017.01.15
С днем рождения ! 8 февраля 2016 понедельник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский