Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296

Особенности использования компонента Chart

01.04.2015, 15:08. Показов 2123. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
... доброго времени суток, уажаемые форумчане! Возникла пара вопросов по компоненту Chart:

1. Возможно ли отображать значения маркеров оси в виде "1.0 ... 14.0", а не "10 ... 140" (см. Скрин 1 ниже); если - да, то как это можно реализовать?
2. Возможно ли по достижении графиком некоторого значения, пусть это будет 60, отображать эту часть (т. е. выше, например 60) другим цветом; если - да, то как это можно реализовать?

На всякий случай привожу фрагмент кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <vcl.h>
#pragma hdrstop
#include "MainForm.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
 
TMainForm *MainForm;
//---------------------------------------------------------------------------
 __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner)
  {
     Series1 -> Clear();
     A_1 = A_2 = A_3 = A_4 = 0;
     Series1 -> Add(A_1, "Цех 1", clYellow);
     Series1 -> Add(A_2, "Цех 2", clBlue);
     Series1 -> Add(A_3, "Цех 3", clRed);
     Series1 -> Add(A_4, "Цех 4", clPurple);
 }
//---------------------------------------------------------------------------
// Кнопка "График"
 void __fastcall TMainForm::Button1Click(TObject *Sender)
  {
     Series1 -> Clear();
     Series1 -> Add(A_1, "Цех 1", clYellow);
     Series1 -> Add(A_2, "Цех 2", clBlue);
     Series1 -> Add(A_3, "Цех 3", clRed);
     Series1 -> Add(A_4, "Цех 4", clPurple);
  }
//---------------------------------------------------------------------------
// Кнопка "Обновить данные"
 void __fastcall TMainForm::Button2Click(TObject *Sender)
  {
     A_1 = StrToInt(LabeledEdit1 -> Text);
     A_2 = StrToInt(LabeledEdit2 -> Text);
     A_3 = StrToInt(LabeledEdit3 -> Text);
     A_4 = StrToInt(LabeledEdit4 -> Text);
  }
Заранее благодарен за ответ.
Миниатюры
Особенности использования компонента Chart  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2015, 15:08
Ответы с готовыми решениями:

Произвольная ширина между стобцов компонента Chart
...доброго времени суток, уважаемые форумчане! Возник вопрос по компоненту &quot;Chart&quot;: имеется ли настройка, позволяющая ВЫБОРОЧНО убрать...

Вывод времени типа AnsiString (формат даты-00:00:00) из многоуровнего массива в ось X компонента Chart
Всем доброго времени суток! Помогите чем сможите начинающему. Суть проблемы такова: Есть многоуровневый массив struct Arxiv { ...

Особенности использования const_cast
Почему не работает код: 1. const int* const pInt = new int(0); const_cast&lt;int*&gt;(pInt) = new int(4); 2. void...

4
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
01.04.2015, 15:43
1) Двойной клик по чарту-> Вкладочка Chart-> Вкладочка Axis-> Вкладочка Scales-> Кнопочка Change-> Установить значение 0,1
А вообще это очень умный подонок, - он сам все масштабирует (сами надписи цифр при мелком разбиении не поместятся).
2) Первое, что приходит в голову, это наложить два графика один на другой.
1
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
01.04.2015, 19:25  [ТС]
SatanaXIII, спасибо за ответ. Теперь детали:
1. У меня входные величины изменяются от 0.0 до 14.0, а, насколько я знаю, компоненту Chart дробные значения "скармливать" нельзя.
2. Автоматическое масштабирование - мне не подходит: на основе данного компонента делаю динамический индикатор (внешне что-то похожее на индикатор уровня в аудиоаппаратуре); обновление решил организовать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
// Первый запуск таймера - был раньше
 
 // Периодичность обновления компонента "Chart" равна 50 ms
   void __fastcall TMainForm::OnTimer(TObject *Sender)
    {
     // Первый запуск таймера - был раньше; далее до закрытия всего приложения
        Timer1 -> Interval = 0;
        Series1 -> Clear();
        Series1 -> Add(A_1, "УСТ", clYellow);
        Series1 -> Add(A_2, "ТЕК", clBlue);
        Timer1 -> Interval = 50;
    }
т. е. то, что показано на "скрине" - всего лишь проба для оценки возможностей использования Chart-а.

3. А какими настройками можно наложить два графика?.. Хотя, в принципе, по достижении определенного уровня можно просто менять цвет столбика.
4. Еще вопрос: можно ли какими-то настройками избавиться от "пустых мест" между графиками?
5. Может Вы (или еще кто-нибудь) сможете подсказать компонент более подходящий для описанной задачи (например, каким-то образом "прикрутить" в качестве индикатора ProgerssBar)?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
02.04.2015, 00:01
Лучший ответ Сообщение было отмечено Simulkin Stas как решение

Решение

Цитата Сообщение от Simulkin Stas Посмотреть сообщение
каким-то образом "прикрутить" в качестве индикатора
Поскольку у вас лишь четыре параметра, то можно попробовать обойтись без chart и сделать "столбики" на дискретных элементах (компонент CGauge). В такой манере, как на картинке__
Миниатюры
Особенности использования компонента Chart  
Вложения
Тип файла: zip 23.ZIP (260.3 Кб, 6 просмотров)
1
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
02.04.2015, 08:50  [ТС]
nick42, спасибо большое - я про компонент CGauge и не знал... сейчас буду пробовать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2015, 08:50
Помогаю со студенческими работами здесь

Особенности использования функции rand() в С++
Не пойму почему Visual Studio ругается когда я создал класс и описывая его хочу использовать функцию rand() подключая при этом и stdlib.h и...

Особенности использования указателей и ссылок в C++ при возврате из функции
Пусть у нас есть некий класс CBase и есть функция, которая создает и возвращает объект класса CBase. Создать она его может стеке или в...

Tools компонента Chart Pro
Проблема с добавлением инструментов на компонент Chart. При добавлении любого инструмента выпадает ошибка.

Построение графика Chart с использованием компонента Listbox на основе таблицы базы данных
Добрый день. Есть таблица базы данных которая загружается в DBGrid. Теперь нужна такая картина: Первая строка таблицы (с наименованием...

особенности использования $publicaccess="1"
Есть документ, в котором изначально есть $PublicAccess=&quot;1&quot; (исторические причины, по которым в форме есть это поле мною сейчас выясняются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru