![]() |
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) |
Re: Problem mit TChart, Function High
Hallo Thomas,
so geht es ohne Exception:
Delphi-Quellcode:
Grüße vom marabu
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; |
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:
werden ja alle series glöscht.
Chart2.FreeAllSeries;
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; |
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:
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.
ls.Free; // entweder
myChart.SeriesList.Series[0].Free; // oder marabu |
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