Einzelnen Beitrag anzeigen

bronstein

Registriert seit: 3. Feb 2004
28 Beiträge
 
Delphi XE2 Professional
 
#1

Chart zur Laufzeit erstellen, Formatierungs Probleme

  Alt 14. Feb 2008, 20:39
Hallo,
ich erstelle ein Chart zur Laufzeit. Jetzt habe ich noch mehrere Probleme

1.) Ich möchte, dass die Linien über die Balken gehen, da man sonst die Linien so schlecht erkennt. Sprich die Linien in den Vordergrund setzen
2.) Wie kann ich angeben, dass sich z.b. ein Balken nicht auf die linke sondern auf die rechte Achse bezieht

Hat jemand eine Idee wie ich das machen könnte.

Hier mal meine bisherige Funktion:
Delphi-Quellcode:
procedure TfrmSettings.VorschauData(Chart:TChart; DiagrammID:ShortString);
var
  Kreis: TPieSeries;
  Balken: TBarSeries;
  Linie: TLineSeries;
  LastTypID: Integer;
begin
  //Series zeichnen und mit Werten belegen
  LastTypID := 0;
  Chart.SeriesList.Clear; //alle Series aus dem Diagramm löschen
  AdoQuery1.SQL.Clear;
  //AdoQuery1.SQL.Add('Select * FROM Series WHERE ChartID=' + pString(Combobox2.Items.Objects[ComboBox2.ItemIndex])^);
  AdoQuery1.SQL.Add('SELECT Series.*, Data.* FROM Series INNER JOIN Data ON Series.SeriesID = Data.SeriesID WHERE ChartID=' + DiagrammID + ' ORDER BY Series.SeriesID');
  AdoQuery1.Active := true;
  while not AdoQuery1.Eof do
  begin
    if LastTypID <> AdoQuery1.FieldByName('TypID').AsInteger then
    begin
      if AdoQuery1.FieldByName('TypID').AsInteger = 1 then //Linie
      begin
        Linie := TLineSeries.Create(self);
        Linie.ParentChart := Chart;
        Linie.SeriesColor := GetFarbe(AdoQuery1.FieldByName('Farbe').AsString);
        Linie.Title := AdoQuery1.FieldByName('Titel').AsString;
      end;
      if AdoQuery1.FieldByName('TypID').AsInteger = 2 then //Balken
      begin
        Balken := TBarSeries.Create(self);
        Balken.ParentChart := Chart;
        Balken.SeriesColor := GetFarbe(AdoQuery1.FieldByName('Farbe').AsString);
        Balken.Title := AdoQuery1.FieldByName('Titel').AsString;
      end;
      if AdoQuery1.FieldByName('TypID').AsInteger = 3 then //Kreis
      begin
        Kreis := TPieSeries.Create(self);
        Kreis.ParentChart := Chart;
        Kreis.SeriesColor := GetFarbe(AdoQuery1.FieldByName('Farbe').AsString);
        Kreis.Title := AdoQuery1.FieldByName('Titel').AsString;
      end;
    end;
    if AdoQuery1.FieldByName('TypID').AsInteger = 1 then //Linie
      Linie.Add(AdoQuery1.FieldByName('Wert').AsFloat, AdoQuery1.FieldByName('Beschriftung').AsString);
    if AdoQuery1.FieldByName('TypID').AsInteger = 2 then //Balken
      Balken.Add(AdoQuery1.FieldByName('Wert').AsFloat, AdoQuery1.FieldByName('Beschriftung').AsString);
    if AdoQuery1.FieldByName('TypID').AsInteger = 3 then //Kreis
      Kreis.Add(AdoQuery1.FieldByName('Wert').AsFloat, AdoQuery1.FieldByName('Beschriftung').AsString);
    LastTypID := AdoQuery1.FieldByName('TypID').AsInteger;
    AdoQuery1.Next;
  end;
end
  Mit Zitat antworten Zitat