wCol = (ClientWidth - (n - 1)*MC - 20) / n;
// початкові координати
x = 10;
y = ClientHeight - 20;
Знайдемо мінімальне і максимальне значення даних:
int min, max; // індекси мінімального і макс. значення
min = 0;
max = 0;
// знайдемо мінімальне і макс. значення в масиві
for (int i = 1; i < n; i++)
{
if (data[i] < data[min]) min = i;
if (data[i] > data[max]) max = i;
}
Далі в циклі проходимо по масиву і будуємо відповідні колонки з допомогою методу Rectangle (прямокутник), вказавши попередньо координати і бажаний колір:
int h; // висота колонки
Canvas->Font->Size = 10; // розмір шрифту
// цикл по всім значенням масиву
for ( int i = 0; i < n; i++)
{
// максиальна висота відповідає
// колонці висотою РозмірФормиПоВертикалі - 100
h = (ClientHeight - 100) * data[i]/data[max];
// визначаємо стиль "заливки"
Canvas->Brush->Style = bsSolid;
// визначаємо колір
Canvas->Brush->Color = clBlue;
// будуємо колонку
Canvas->Rectangle(x, y, x + wCol, y - h);
// підписуємо данні
AnsiString st;
st = FloatToStrF(data[i],ffGeneral,5,2);
st = st + " грн.";
Canvas->Brush->Style = bsClear; // область вывода текста - прозрачная
Canvas->TextOutA(x, y-h-20, st);
x = x + wCol + 5;
}