assassin005, в следующий раз тема, не соответствующая правилам, будет удалена. Сообщения под "попугая" тоже не стоит раскрашивать.
Вот код, используется компонент Chart:
Code
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//простенькая защита от ошибки, связанной с пустым Edit
if(Edit1->Text == "")
Edit1->Text = 0;
if(Edit2->Text == "")
Edit2->Text = 0;
if(Edit3->Text == "")
Edit3->Text = 0;
if(Edit4->Text == "")
Edit4->Text = 0;
float A1 = StrToFloat(Edit1->Text);//книги
float A2 = StrToFloat(Edit2->Text);//журналы
float A3 = StrToFloat(Edit3->Text);//канцтовары
float A4 = StrToFloat(Edit4->Text);/прочее
float summa = 0;//общая сумма
Series1->Clear();//очистка диаграммы
//добавление в диаграмму
Series1->Add(A1,"Книги",clYellow);
Series1->Add(A2,"Журналы",clBlue);
Series1->Add(A3,"Канцтовары",clRed);
Series1->Add(A4,"Прочее",clPurple);
//считаем процент каждого от общей суммы
summa = A1 + A2 + A3 + A4;
if(A1 != 0)//тут и далее опять же простенькая защита от деления на ноль
Label5->Caption = A1 / (summa / 100);
if(A2 != 0)
Label6->Caption = A2 / (summa / 100);
if(A3 != 0)
Label7->Caption = A3 / (summa / 100);
if(A4 != 0)
Label8->Caption = A4 / (summa / 100);
}
//---------------------------------------------------------------------------
Архив с проектом прикреплен.