Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit TChart, Function High (https://www.delphipraxis.net/55560-problem-mit-tchart-function-high.html)

Hallo_Thomas 23. Okt 2005 12:11


Problem mit TChart, Function High
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Irgendwie schaff ichs nicht, der Series1 den Chart1.SeriesList[ 0 ] zuzuordnen, um den höchsten Punkt zu ermitteln.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,IniFiles, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type
  TForm1 = class(TForm)
    Chart1: TChart;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    MeineListe:TStrings;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i,Zahl:Integer;
begin
  meineListe:=TStringList.Create;
  for i:=0 to 10 do
    begin
      Zahl := random(100);
      meineListe.Insert(0,IntToStr(Zahl));
    end;
end;

procedure TForm1.FormShow(Sender: TObject);
var i:Integer;
  MySeries: TLineseries;
begin
  MySeries:= TLineseries.Create( Self );
  MySeries.ParentChart:= Chart1;
  for i:=0 to 10 do
    begin
      with Chart1.SeriesList[ 0 ] do
          AddXY( i,StrtoInt(meineListe.Strings[i]));
     end;
end;

end.

Fehlermeldung:

Erste Zufalls-Exception bei$7C81EB833.Exception-Klasse ChartException mit Meldung 'No valid DataSource: Series1' Prozess Project1.exe(1240)

marabu 23. Okt 2005 13:44

Re: Problem mit TChart, Function High
 
Hallo Thomas,

so geht es ohne Exception:

Delphi-Quellcode:
procedure TMainForm.ActionButtonClick(Sender: TObject);
var
  ls: TLineSeries;
  i: integer;
begin
  ls := TLineSeries.Create(myChart);
  myChart.AddSeries(ls);
  for i := 1 to 10 do
    with ls do
      AddXY(i, Random(100));
end;
Grüße vom marabu

Hallo_Thomas 23. Okt 2005 19:10

Re: Problem mit TChart, Function High
 
Wunderbar,dass funkrioniert,aber kaum habsch ein Türchen geöffnet,gibts für mich2 neue verschlossene.

Nun schaff ichs nicht den einen Chart wieder zu löschen.

Bei,
Delphi-Quellcode:
Chart2.FreeAllSeries;
werden ja alle series glöscht.
Wie kann ich die Function High von TChart zur Laufzeit danach wieder erstellen?



Delphi-Quellcode:
ls: TLineSeries;
  i: integer;
begin
  ls := TLineSeries.Create(Chart1);
  Chart1.AddSeries(ls);
  for i := 1 to 10 do
  begin
    with ls do
      AddXY(i, Random(100));
  end;
  Series1.DataSource:=ls;
end;

marabu 23. Okt 2005 20:56

Re: Problem mit TChart, Function High
 
Wenn du dir den Pointer ls auf die von dir dynamisch erstellte LineSeries zwischenspeicherst, dann kannst du die Serie direkt freigeben, ansonsten über ihren Container:

Delphi-Quellcode:
ls.Free; // entweder
myChart.SeriesList.Series[0].Free; // oder
Den Index bei der zweiten Alternative musst du natürlich korrigieren, falls es sich einmal nicht um die erste Serie handelt. Und wenn du der Serie beim Erzeugen einen Namen oder einen Tag-Wert verpasst, dann kannst du sie auch über diese Angaben wieder indentifizieren, wenn du durch die SeriesList iterierst. Wenn es die einzige LineSeries ist, dann genügt der Typ zur Identifikation.

marabu

Hallo_Thomas 23. Okt 2005 22:29

Re: Problem mit TChart, Function High
 
Hab gerad noch mah eh bissl gewerkelt und habs so gelöst


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
  MySeries: TLineseries;
begin
  for i:=0 to 1 do
  begin
    MySeries:= TLineseries.Create( Self );
    MySeries.ParentChart:= Chart1;
  end;
  for i:=0 to 10 do
    begin
      with Chart1.SeriesList[ 0+1 ] do
          AddXY( i, Random(100));
     end;
    Chart1.SeriesList[0].SetFunction(THighTeeFunction.Create(self));
    Chart1.SeriesList[0].DataSource:=Chart1.SeriesList[ 0+1 ];
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz