AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tchart Hintergrund abschnittsweise einfärben

Ein Thema von th_bone · begonnen am 26. Nov 2008 · letzter Beitrag vom 26. Nov 2008
Antwort Antwort
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#1

Tchart Hintergrund abschnittsweise einfärben

  Alt 26. Nov 2008, 08:00
Hi,

ist es bei Tchart möglich, bzw. gibt es eine Funktion mit der man den Hintergrund
Abschnittsweise einen andere Farbe zuzweisen, z.B. Gerade Wochen rot, ungerade weiß,
kann.

Danke

Ralf
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
375 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Tchart Hintergrund abschnittsweise einfärben

  Alt 26. Nov 2008, 10: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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz