Главная страница
    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.46 MB
Время: 0.083 c
15-1456781401
Юрий
2016-03-01 00:30
2017.01.15
С днем рождения ! 1 марта 2016 вторник


2-1423343139
Andrey K
2015-02-08 00:05
2017.01.15
Как перевести текст в формат DOS


2-1431075632
Caxap906
2015-05-08 12:00
2017.01.15
Загрузка изображений из интернета


15-1448010775
Kerk
2015-11-20 12:12
2017.01.15
Все работы хороши


15-1452147343
pavelnk
2016-01-07 09:15
2017.01.15
Вирусная программа в браузере





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский