Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2014, 13:13   #1
korn999
Пользователь
 
Регистрация: 02.07.2014
Сообщений: 22
По умолчанию Как всё-таки программно инициировать Chart?

(Я уже задавал этот вопрос, но невнятно. Сейчас конкретно...)
Вытаскиваю на форму Chart, делаю обработчик кнопки:
Series1->Clear(); for(i=0; i<10; i++) Series1->AddXY(i,i*i,"",clBlack);
Нажимаю, рисуется парабола от 0 до 9.
Но, предположим, что я хочу посмотреть тот же график от i но для диапазона от 5.5 до 7.5 (то есть всего для двух точек).
Пишу новую кнопку:
Chart1->BottomAxis->Maximum=7.5;
Chart1->BottomAxis->Minimum=5.5;
Жму, не работает... (Вставляй строчку с Series- не вставляй...)
Но если я проведу с нажатой кнопкой мыши по экрану (AllowZoom включён), то всё начинает работать как надо.
Никто не понимает в чём дело? Что надо дописать в обработчик кнопки, что бы всё заработало сразу?
(Я работаю в CBuilder 5. Если кому-то нужна программа, я выложу).
korn999 вне форума Ответить с цитированием
Старый 19.09.2014, 13:46   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Попробуй что-нибудь из подобного:
Код:
Series1->Repaint();  
Series1->RefreshSeries();
Chart1->Invalidate();
Пусть оно перерисуется.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 19.09.2014, 14:16   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Весь код показать можешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2014, 16:29   #4
korn999
Пользователь
 
Регистрация: 02.07.2014
Сообщений: 22
По умолчанию

Chart1->Invalidate(); Series1->Repaint(); Series1->RefreshSeries();

- не помогают. (Да и по моему вообще ни на что не влияют, куда ни ставь).

Да весь код - две кнопки
1 - Series1->Clear();
for(i=0; i<10; i++) Series1->AddXY(i,i*i,"",clBlack);

и вторая

2.
Chart1->BottomAxis->Maximum=7.5;
Chart1->BottomAxis->Minimum=5.5;

Вот код примера:

http://www.fayloobmennik.net/4121475

Последний раз редактировалось Stilet; 19.09.2014 в 21:26.
korn999 вне форума Ответить с цитированием
Старый 19.09.2014, 21:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вот код примера:
Что это??
Это ведь не тот проект, о котором в теме речь идет?

Впрочем попробуй:
Код:
Chart1->BottomAxis->Automatic=false;

Chart1->BottomAxis->Maximum=7.5;
Chart1->BottomAxis->Minimum=5.5;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.09.2014, 12:34   #6
korn999
Пользователь
 
Регистрация: 02.07.2014
Сообщений: 22
По умолчанию

Всё, всем спасибо! (Объяснили в чём дело на другом форуме...)
Надо было просто поотключать в настройках Cрart-а автоматическое определение осей, (определять всё вручную) и всё заработало.
Тема закрыта.
korn999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос тонкий! Как без использования ПОЛЬЗОВАТЕЛЯ инициировать процесс изменения осей в Chart-е? korn999 C++ Builder 0 15.07.2014 20:18
Всё таки его порешили. Я про Муаммара Каддафи rpy3uH Свободное общение 62 12.11.2011 00:58
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Как всё-таки загрузить image из memorystream? TwiX Общие вопросы Delphi 12 27.09.2009 21:09