Announcement

Collapse
No announcement yet.

dynamisch Charts erzeugen (Delphi6 -> Delphi 2010)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • dynamisch Charts erzeugen (Delphi6 -> Delphi 2010)

    Hi,
    ich bin gerade dabei, von Delphi 6 auf Delphi 2010 umzusteigen, und kriege dabei ein Problem:

    Ich hab ein recht umfangreiches Programm, das dynamisch Diagramme erzeugt (je nach Problemfall unterschiedlich viele)

    Unter Delphi 6 hab ich das folgendermaßen gemacht:

    Code:
              new(AllCharts[actchart]);
              AllCharts[actchart]^:=TChart.Create(self);
              AllCharts[actchart]^.Parent:=BigPanel;
              AllCharts[actchart]^.HandleNeeded;
              AllCharts[actchart]^.Assign(ThePeakChart);
    
              AllCharts[actchart]^.OnClick := TheChartClick;
    
              new(AllSeries[actchart]);
              AllSeries[actchart]^:=TLineSeries.Create(self);
    
              AllSeries[actchart]^.SeriesColor := clRed;
    
              new(AllSeries2[actchart]);
              AllSeries2[actchart]^:=TLineSeries.Create(self);
    
              AllSeries2[actchart]^.SeriesColor := clBlue;
    
              AllCharts[actchart]^.SeriesList.Add(AllSeries[actchart]^);
    
              AllCharts[actchart]^.SeriesList.Add(AllSeries2[actchart]^);
    
              AllSeries[actchart]^.ParentChart:=AllCharts[actchart]^;
              AllSeries2[actchart]^.ParentChart:=AllCharts[actchart]^;
    
              lastchart:=lastchart+1;
    Allcharts ist ein array von Pointern auf TChart, AllSeries dasselbe für TLineSeries;
    ThePeakChart ist ein Chart, was zur Entwurfszeit eingebaut wurde;
    Unter Delphi 6 hat das so funktioniert; unter Delphi 2010 kriege ich eine Exception (Zugriffsverletzung - genauer gesagt kriege ich für jedes Diagramm, was versucht wird darzustellen, eine Zugriffsverletzung - dasselbe, wenn ich von einer anderen Seite zurück auf die Diagrammseite gehe), und die Diagramme werden nicht dargestellt - anscheinend haben die hier kein Handle ?!
    Hat jemand eine Ahnung, was ich unter Delphi 2010 ändern muß, damit das wieder funktioniert?

  • #2
    Problem eingegrenzt

    anscheinend ist das Problem nicht das Handle (es funktioniert prinzipiell anscheinend auch ohne HandleNeeded), sondern das Hinzufügen der Serien:

    die alte Variante Chart.SeriesList.Add(ASeries)

    scheint nicht mehr zu funktionieren - möglicherweise weil die Serien jetzt gruppiert sind...

    Also falls keiner einen Hinweis hat, wie man jetzt weitere Serien einfügen muß, werde ich mal weiterprobieren...

    Comment


    • #3
      In's Blaue geraten: versuch' mal

      Code:
      TChart.AddSeries(ASeries)

      [OFFTOPIC]
      Ansonsten würde ich persönlich auch mal TList anschauen, um von dem Array mit zeigern und dem schönen []^ - Operator wegzukommen.

      Das sieht so nach C aus myPointer*[]**
      [/OFFTOPIC]

      Grüße
      Tino
      Ich habs gleich!
      ... sagte der Programmierer.

      Comment


      • #4
        Danke, das wars; jetzt läuft alles wieder;
        das mit den Pointern ist Absicht - da ich Massen von Daten (einige Hundert Megabyte) auswerte, die möglichst ständig greifbar sein sollen, versuche ich arbeitsspeichermäßig immer den Überblick zu halten...

        Comment

        Working...
        X