Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
Delphi 10.4 Sydney
|
Re: Tchart Hintergrund abschnittsweise einfärben
26. Nov 2008, 11:29
Hallo th_bone,
eine direkte funktion gibt es dafür nicht aber du kannst das selbst zeichnen. Hier ein Ausschnitt aus einem meiner Programme. Ich fülle hier mehrer Bereiche des Chart bevor die Achsen und Serien gezeichnet werden in diesem Fall mit Gradient. Ein normales FillRect tuts natürlich auch
mfg cg
Delphi-Quellcode:
procedure TForm_Schema.Chart1BeforeDrawAxes(Sender: TObject);
var x1,x2,y1,y2 : integer;
begin
if not (onCalculate or onPrint) then
begin
Chart1.Canvas.ClipRectangle(Chart1.ChartRect);
try
x1:=Chart1.BottomAxis.CalcPosValue (Chart1.BottomAxis.Minimum-10);
x2:=Chart1.BottomAxis.CalcPosValue (Chart1.BottomAxis.Maximum+10);
y1:=Chart1.LeftAxis.CalcPosValue (MaxFlaechen+0.5);
y2:=Chart1.LeftAxis.CalcPosValue (0);
Chart1.Canvas.GradientFill(Rect(x1,y1,x2,y2),clWhite,clMoneyGreen,gdTopBottom);
If MaxVerkauf>0 then
begin
y1:=Chart1.LeftAxis.CalcPosValue (MaxFlaechen+0.5);
y2:=Chart1.LeftAxis.CalcPosValue (MaxVerkauf+0.5);
Chart1.Canvas.GradientFill(Rect(x1,y1,x2,y2),clMoneyGreen,clWhite,gdTopBottom);
end;
if MaxVerkauf>0 then
y1:=Chart1.LeftAxis.CalcPosValue (MaxVerkauf+0.5)
else
y1:=Chart1.LeftAxis.CalcPosValue (MaxFlaechen+0.5);
y2:=Chart1.LeftAxis.CalcPosValue (Chart1.LeftAxis.Maximum);
Chart1.Canvas.GradientFill(Rect(x1,y1,x2,y2+1),clWhite,clMoneyGreen,gdTopBottom);
finally
Chart1.Canvas.UnClipRectangle;
end;
end;
end;
Andreas Schachtner
|
|
Zitat
|