Inhalt

Aktueller Ordner: duesseldorfer-schuelerinventar-freepascal-client
⬅ Übergeordnet

u_chart.pas

unit u_chart;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Graphics, TAGraph, TASeries, Controls;

type
  TProfileChart = class(TChart)
  private
    FSeSeries: TLineSeries;
    FFESeries: TLineSeries;
  public
    constructor Create(AOwner: TComponent); override;
    procedure SetSeValues(v1, v2, v3, v4, v5, v6: Double);
    procedure SetFEValues(v1, v2, v3, v4, v5, v6: Double);
    procedure Clear;
  end;

implementation

constructor TProfileChart.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Width := 500;
  Height := 250;
  
  FSeSeries := TLineSeries.Create(Self);
  FSeSeries.Title := 'Selbsteinschätzung (SE)';
  FSeSeries.SeriesColor := clBlue;
  FSeSeries.LinePen.Width := 2;
  FSeSeries.ShowPoints := True;
  FSeSeries.Pointer.Brush.Color := clBlue;
  AddSeries(FSeSeries);
  
  FFESeries := TLineSeries.Create(Self);
  FFESeries.Title := 'Fremdeinschätzung (FE)';
  FFESeries.SeriesColor := clRed;
  FFESeries.LinePen.Width := 2;
  FFESeries.ShowPoints := True;
  FFESeries.Pointer.Brush.Color := clRed;
  AddSeries(FFESeries);
  
  Title.Text.Text := 'Profil-Vergleich (SE vs. FE)';
  LeftAxis.Title.Caption := 'Wert (1-5)';
  BottomAxis.Title.Caption := 'Kompetenzen';
  // Achsenbeschriftungen werden über die Datenpunkte definiert
  // Die X-Achse zeigt die Zahlen 1-6 an
end;

procedure TProfileChart.SetSeValues(v1, v2, v3, v4, v5, v6: Double);
begin
  FSeSeries.Clear;
  FSeSeries.AddXY(1, v1);
  FSeSeries.AddXY(2, v2);
  FSeSeries.AddXY(3, v3);
  FSeSeries.AddXY(4, v4);
  FSeSeries.AddXY(5, v5);
  FSeSeries.AddXY(6, v6);
end;

procedure TProfileChart.SetFEValues(v1, v2, v3, v4, v5, v6: Double);
begin
  FFESeries.Clear;
  FFESeries.AddXY(1, v1);
  FFESeries.AddXY(2, v2);
  FFESeries.AddXY(3, v3);
  FFESeries.AddXY(4, v4);
  FFESeries.AddXY(5, v5);
  FFESeries.AddXY(6, v6);
end;

procedure TProfileChart.Clear;
begin
  FSeSeries.Clear;
  FFESeries.Clear;
end;

end.