procedure TForm1.Button1Click(Sender: TObject);
const D: array[1..4] of Integer = (981, 705, 591, 174);
Nazva: array[1..4] of String = ('Дніпро', 'Дністер', 'Десна', 'Дунай');
var i: Integer;
begin
For i := 1 to 4 do
begin
sh[i].Width := D[i] div 5;
lb[i].Caption := Nazva[i];
sh[i].Top := 25*i; lb[i].Top := 25*i;
Image1.Canvas.TextOut (D[i] div 5+20, 25*i, IntToStr(D[i]));
end;
end;
Побудова гістограми з використанням графічних методів
Код процедури обробки події onclick для кнопки Побудувати діаграму може бути таким:
procedure TForm1.Button1Click(Sender: TObject);
const SrBal: array[1..4] of Real = (9.8, 8.5, 9.1, 7.4);
Nazva: array[1..4] of String = ('Інформатика', 'Алгебра', 'Геометрія', 'Фізика');
var i: Integer;
begin
Label1.Caption :='';
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Image1.ClientRect);
Image1.Canvas.Polyline ([Point(5,5),Point(5,140),Point (240,140)]);
Image1.Canvas.Polyline ([Point (2,8), Point (5,5), Point (9,9)]);
Image1.Canvas.Polyline ([Point (235,137), Point (240,140), Point (235,143)]);
For i := 1 to 4 do begin
With Image1.Canvas do begin
Brush.Color := RGBToColor (i*50, 150, 150);
Brush.Style := bsSolid;
Rectangle (i*50, Round(150-SrBal[i]*10), i*50+30, 140);
Brush.Style := bsClear;
Font.Size := 12;
TextOut (i*50, Round(130-SrBal[i]*10), FloatToStr(SrBal[i]));
end;
Label1.Caption := Label1.Caption + ' ' + Nazva[i];
end;
end;