Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Цвет графика в зависимости от значения 
V
    Опции темы
Дося
Дата 12.3.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Народ! Помогите, пожалуйста, замучался совсем... smile
Вот график DBChart.

user posted image

Мне надо сделать, к примеру, если значение от 0 до 2, то столбец был зелёного цвета. Если от 2 до 4 - жёлтого, и т.д. Возможно ли это сделать?.. Очень нужно. Помогите, плиз... smile
PM MAIL   Вверх
tigger
Дата 13.3.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: 2
Всего: 4



Используй метод ColorRange, он позволяет задавать цвет по числовому диапазону.


--------------------
user posted image
PM MAIL   Вверх
tigger
Дата 13.3.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: 2
Всего: 4



Ах да пример забыл:

Код


DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,0,2,clGreen);
DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,2,4,clYellow);





--------------------
user posted image
PM MAIL   Вверх
Дося
Дата 13.3.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Спасибо!!! Заработало!!! Очень благодарен! Респект! smile

Это сообщение отредактировал(а) Дося - 13.3.2006, 18:29
PM MAIL   Вверх
Дося
Дата 13.3.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Ещё небольшой/большой вопросик. smile А можно сделать, чтобы пользователь сам мог задавать интервалы, не суя носа в код? К примеру, на форме сделать с Edit.

user posted image

Использую такой код:

Код
DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);


Всё работает, но этот код только для первого столбца. А если пользователь динамически захочет менять кол-во столбцов? smile И как сделать, чтобы сохранялись настройки? А то при очередном включении программы по-новой надо вводить интервал и цвет... smile

Это сообщение отредактировал(а) Дося - 14.3.2006, 11:12
PM MAIL   Вверх
_hunter
Дата 14.3.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



для этого можно позаносить индексы/названия столбцов в тот же ComboBox и выбирать из него столбец для релактирования.
для сохранения цветов в момент редактирования записывай полученные значения в файл ( с указанием индекса )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Дося
Дата 14.3.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



У меня 6 DBChart'ов, в каждом по 2 столбца. Мне не надо для каждого по отдельности задавать цвета - для всех одинаково в зависимости от значения.

user posted image

А как записывать в файл? Не мог бы примерчик привести. Тебе лекго говорить, когда в этом хорошо понимаешь. А я просто начинающий, поэтому мне трудновато... smile

Пишу вот так:
DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);
DBChart2->Series[0]->ColorRange(DBChart2->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);
DBChart3->Series[0]->ColorRange(DBChart3->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);
DBChart4->Series[0]->ColorRange(DBChart4->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);
DBChart5->Series[0]->ColorRange(DBChart5->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);
DBChart6->Series[0]->ColorRange(DBChart6->Series[0]->YValues,StrToInt(Edit1->Text),StrToInt(Edit2->Text),ColorBox1->Selected);


Это сообщение отредактировал(а) Дося - 14.3.2006, 11:38
PM MAIL   Вверх
_hunter
Дата 14.3.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



как это:
Цитата(Дося @ 13.3.2006, 20:12 Найти цитируемый пост)
А если пользователь динамически захочет менять кол-во столбцов?

связанно с этим:
Цитата(Дося @ 14.3.2006, 10:31 Найти цитируемый пост)
У меня 6 DBChart'ов, в каждом по 2 столбца.

?
или я чего-то пропустил?

насчет записи в файл почитай справку/поищи на форуме TFileStream


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Дося
Дата 14.3.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Понимать это следует так: пользователь может задавать любой интервал и к нему цвет. Значения - от 0 до 11 включительно. К примеру, пользователь захочет сделать два интервала - первый от 0 до 5 с жёлтым цветом, второй - от 6 до 11 с зелёным. Или три интервала надумает сделать.
До этого я использовал такой код:

DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,0,2,clLime);
DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,2,4,clGreen);
DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,4,6,clYellow);
DBChart1->Series[0]->ColorRange(DBChart1->Series[0]->YValues,6,11,clRed);
DBChart2->Series[0]->ColorRange(DBChart2->Series[0]->YValues,0,2,clLime);
DBChart2->Series[0]->ColorRange(DBChart2->Series[0]->YValues,2,4,clGreen);
DBChart2->Series[0]->ColorRange(DBChart2->Series[0]->YValues,4,6,clYellow);
DBChart2->Series[0]->ColorRange(DBChart2->Series[0]->YValues,6,11,clRed);
DBChart3->Series[0]->ColorRange(DBChart3->Series[0]->YValues,0,2,clLime);
DBChart3->Series[0]->ColorRange(DBChart3->Series[0]->YValues,2,4,clGreen);
DBChart3->Series[0]->ColorRange(DBChart3->Series[0]->YValues,4,6,clYellow);
DBChart3->Series[0]->ColorRange(DBChart3->Series[0]->YValues,6,11,clRed);
DBChart4->Series[0]->ColorRange(DBChart4->Series[0]->YValues,0,2,clLime);
DBChart4->Series[0]->ColorRange(DBChart4->Series[0]->YValues,2,4,clGreen);
DBChart4->Series[0]->ColorRange(DBChart4->Series[0]->YValues,4,6,clYellow);
DBChart4->Series[0]->ColorRange(DBChart4->Series[0]->YValues,6,11,clRed);
DBChart5->Series[0]->ColorRange(DBChart5->Series[0]->YValues,0,2,clLime);
DBChart5->Series[0]->ColorRange(DBChart5->Series[0]->YValues,2,4,clGreen);
DBChart5->Series[0]->ColorRange(DBChart5->Series[0]->YValues,4,6,clYellow);
DBChart5->Series[0]->ColorRange(DBChart5->Series[0]->YValues,6,11,clRed);
DBChart6->Series[0]->ColorRange(DBChart6->Series[0]->YValues,0,2,clLime);
DBChart6->Series[0]->ColorRange(DBChart6->Series[0]->YValues,2,4,clGreen);
DBChart6->Series[0]->ColorRange(DBChart6->Series[0]->YValues,4,6,clYellow);
DBChart6->Series[0]->ColorRange(DBChart6->Series[0]->YValues,6,11,clRed);

По 4 интервала на каждый DBChart. Вот я и хочу, чтобы в настройках пользователь мог сам вручную устанавливать значения интервалов и к ним цвета. Может, я не в том направлениии думаю? Т.е. подскажите лучший подход? Спасибо!
PM MAIL   Вверх
_hunter
Дата 14.3.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



берем два Edit' а ( можно spin ) за ним лепим панельку ( чтобы цвет смотреть можно было ) и кнопку "применить".
в edit' ы заносятся начало/конец интервалов. по кнопке цвета меняются/пишутся в файла ( еще проверку на пересечение интервалов прилепить нужно )
как бы все...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Дося
Дата 14.3.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



А если так:

user posted image

Как думаешь?
PM MAIL   Вверх
_hunter
Дата 14.3.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



можно и так...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Дося
Дата 14.3.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



А как в файл сохранить какой был выбран цвет? smile
PM MAIL   Вверх
_hunter
Дата 14.3.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



как простой int


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Дося
Дата 14.3.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Не получается у меня никак... smile Не смог бы, пожалуйста, подробнее написать, как сохранить в файл и потом использовать его в программе? Могу, если надо, выложить программу саму...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.