Відобразити у вигляді лінійчатої діаграми дані таблиці
У розділі опису глобальних змінних опишемо:
var
Form1: TForm1;
sh: array[1..4] of TShape;
lb: array[1..4] of TLabel;
Заповнення масивів відбуватиметься під час створення форми:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Image1.ClientRect);
sh[1] := Shape1;
sh[2] := Shape2;
sh[3] := Shape3;
sh[4] := Shape4;
lb[1] := Label1;
lb[2] := Label2;
lb[3] := Label3;
lb[4] := Label4;
end;
Код процедури обробки події onclick для кнопки Побудувати діаграму може бути таким:
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;
Комментариев нет:
Отправить комментарий