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.