Робота з графіками та діаграмами (TChart, Series) (исходники), Різне, Програмування, статті

Сьогодні ми поговоримо про малювання графіків за допомогою C + + Builder. Цю тему я вирішив торкнутися тому, що днями довелося швидко написати програму для того ж самого малювання графіків, і я подумав що, напевно, не одному мені це знадобиться.



Отже, менше слів – більше діла, почнемо:
Для роботи з графіками та діаграмами в C + + Builder існує компонент TChart (вкладка Additional), ось його ми і покладемо на форму. Далі якщо натиснути на Chart1 правою кнопкою миші, і вибрати Edit Chart … , То Ви побачите вікно налаштувань графіка, варто зауважити, що графік можна настроювати і змінювати параметри і в ході виконання програми, тобто його налаштування на обмежується одним віконцем. Перша закладка вікна налаштування називається Series, натисніть Add (Додати), і відкриється вікно вибору: можете додати різні лінії стовпці і тому подібні речі. Давайте виберемо лінію (на сторінці вибору – Line), ви відразу побачите, що наш Chart1 заповнила лінія, значення вибираються випадкові, але натисніть F9 – і ви її не побачите! Далі зробимо так, що б ми змогли побачити нашу лінію в процесі роботи програми.
Давайте покладемо на форму кнопку (Button) і напишемо для неї такий обробник події:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Series1->Add(13,22,clRed);
}

Тепер спробуйте відкомпілювати програму (F9) і натиснути кнопку (Button) – ви побачите нашу лінію!
Але тут є один дуже важливий момент, в обробнику події ми працювали вже не з Chart1, а з Series1, це дуже важливо.
Зауважу, якщо ліній буде більше ніж одна, тобто Ви створите Series2, Series3, то і працювати в коді ви будете теж з ними.
Давайте ускладнимо трохи нашу програму і зробимо її динамічніше.
На форму додаємо два компоненти TEdit – в них ми будемо вводити значення по осі Y та Х. Для кнопки змінюємо обробник події на такий:

 

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Edit1->Text == “”)
{ ShowMessage (“Ви не ввели значення Y!”);
return ;
}
if(Edit2->Text == “”)
{ ShowMessage (“Ви не ввели значення X!”);
return ;
}
int y;
int x;
y = Edit1->Text.ToInt();
x = Edit2->Text.ToInt();
Series1->Add(y,x,clBlue);
Edit1->Text = “”;
Edit2->Text = “”;
}

Тепер детально розберемо написане: Спочатку ми описали перевірки, ввів користувач хоч якісь дані Х і Y.

 

if(Edit1->Text == “”)
{ ShowMessage (“Ви не ввели значення Y!”);
return ;
}
if(Edit2->Text == “”)
{ ShowMessage (“Ви не ввели значення X!”);
return ;
}

Далі ми вказали дві змінних х і y.
Але тут є один важливий момент, просто присвоїти х = Edit1-> Text , Не можна.
Треба конвертувати AnsiString в Int32:
y = Edit1->Text.ToInt();
x = Edit2->Text.ToInt();
Тобто ми представляємо текст Едіта, як число.
А далі все схоже на наш перший приклад: Series1->Add(13,22,clRed);
Тільки замість готових чисел, ми додаємо х і у які пишемо в Едіти. Відкомпілюйте програму і побачите, як прорисовується лінія по ходу додавання туди значень.
Якщо розберетеся в TChart більш детально, то зможете: видаляти останні наведені значення, прибирати додавати сітку, міняти кольори ліній, міняти товщину ліній і так далі.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*