AGB  ·  Datenschutz  ·  Impressum  







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

Chart1.SeriesList erzeugung zur Laufzeit

Ein Thema von Hallo_Thomas · begonnen am 17. Jul 2005 · letzter Beitrag vom 18. Jul 2005
Antwort Antwort
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Chart1.SeriesList erzeugung zur Laufzeit

  Alt 17. Jul 2005, 19:15
Ich habe einige Zeilen hinzugefügt zu meinem Programm, damit jetzt die Linien(Reihen zur Laufzeit erzeugt werden. Das habe ich geändert, da ich Probleme mit dem unteren Befehl, da ich ich nach dem löschen, keine neuen Reihen(also Feste vorher in Tchart definierte) erzeugen konnte.
Jetzt ist das Programm mit den hinzzugefügten befehltzeilen wesentlich langsamer, wie kann ich das ändern





Delphi-Quellcode:
procedure TForm2.Button4Click(Sender: TObject);
var y,i,x,z,v : Integer;
[b]Var MySeries: TLineseries;////Dies wurde Hinzugefügt[/b]
  Counter : array[0..1500] of Integer;
begin
  If ComboBox1.ItemIndex = 0 Then
  Begin
  for y := 0 to 36 do
  Counter[y] := 0;
  for x := Form1.meineListe.count - 1 downto 0 do
  begin
    z:=StrToInt(Form1.meineListe.Strings[x]);
    i:=Form1.meineListe.count-x;
    for y := 0 to 36 do
      begin
        if (z in Form1.werte[y]) then
        begin
          Counter[y] := 0;
        end
        else
        begin
          Inc(Counter[y]);
        end;
        Begin
          [b]MySeries:= TLineseries.Create( Self );;////Dies wurde Hinzugefügt
          MySeries.ParentChart:= Chart1;;////Dies wurde Hinzugefügt[/b]
          with Chart1.SeriesList[ y ] do
          AddXY( i,Counter[y] );
        end;
      end;
    end;

Dies benutze ich zum löschen von TChart
Delphi-Quellcode:
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
  Chart1.FreeAllSeries;
end;
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Chart1.SeriesList erzeugung zur Laufzeit

  Alt 18. Jul 2005, 19:25
Hat niemnand ne Idee, es ist im Moment echt arschlangsam?
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Chart1.SeriesList erzeugung zur Laufzeit

  Alt 18. Jul 2005, 20:22
irgendwie stimmt dein Schleifenaufbau nicht und deine Einrückungen dienen nicht wirklich der Übersicht ,
Delphi-Quellcode:
  for x := Form1.meineListe.count - 1 downto 0 do
  begin
    ...
    for y := 0 to 36 do
      begin
          [b]MySeries:= TLineseries.Create( Self );;////Dies wurde Hinzugefügt
          MySeries.ParentChart:= Chart1;;////Dies wurde Hinzugefügt[/b]
          with Chart1.SeriesList[ y ] do
          AddXY( i,Counter[y] );
        end;
      end;
    end;
in jedem y-Durchlauf wird ein Lineseries erstellt und das ganze x-mal (äußere Schleife).

ungetestet:
Delphi-Quellcode:
  If ComboBox1.ItemIndex = 0 Then
  begin
    for y := 0 to 36 do
      begin
        Counter[y] := 0;
        MySeries:= TLineseries.Create( Self );
        MySeries.ParentChart:= Chart1;
      end;
    for x := Form1.meineListe.count - 1 downto 0 do
      begin
        z:=StrToInt(Form1.meineListe.Strings[x]);
        i:=Form1.meineListe.count-x;
        for y := 0 to 36 do
          begin
            if (z in Form1.werte[y]) then Counter[y] := 0
                                     else Inc(Counter[y]);
            Chart1.SeriesList[y].AddXY( i,Counter[y] );
          end;
      end;
  end;
Du könntest dir noch überlegen, ob du die x und y-Schleife drehst, somit könntest du dir die obere schleife sparen. Geschwindigkeitsmäßig bremst dich dann aber das strtoint aus, aber das gibts auch Mittel und Wege.

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Chart1.SeriesList erzeugung zur Laufzeit

  Alt 18. Jul 2005, 20:39
Hallo Thomas,

du erzeugst für meine Begriffe viel zu viele LineSeries. Jede kriegt nur einen einzigen Punkt ab. Überlege nochmal, ob deine Laufvariablen x und y korrekt verschachtelt sind oder ob du sie vertauschen musst. Und erzeuge deine LineSeries in der Außenschleife. Besser ist das.

Grüße vom marabu

PS: du bist sehr kreativ bei der Vergabe von Bezeichnern.

@Frank: bin beim tippen irgendwie eingeschlafen...
  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 00:08 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