Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Exception bei TChart Objekt (https://www.delphipraxis.net/62698-exception-bei-tchart-objekt.html)

Phane01 8. Feb 2006 11:35


Exception bei TChart Objekt
 
Hallo zusammen,
ich habe ein Problem mit dem TChart Objekt in Delphi. Ich habe mir ein Objekt erstellt, welches vom TChart Objet abgeleitet ist

TmyChart = class(TChart)
private

public

end

Im constructor meines Objektes, rufe ich über inherited Crete() den Constructor des Original TChart Objektes auf.

Ich generiere zur Laufzeit dynamisch n TmyChart Objekte und natürlich eine Serie zu jedem Chart.
In diese werden dann die Werte (x Zeit wert; y normaler Integer) hinzugefügt
k_ChartArray[i].Series[0].AddXY(time, a_user,'',clBlack);
Das hinzufügen der Werte klappt wunderbar. Wenn ich mir jetzt jedoch die Diagramme anzeigen lasse, bekomme ich eine für bestimmte Wertepaare eine Exception. Im Normalfall sind die y-Werte zwischen 0 und 100, das klappt perfekt. Für einige Charts sind die y-Werte jedoch > 10000. Dann bekomme ich sofort bei der Anzeige eine Exception.
Folgende Eigenschaften setzte ich beim Erzeugen des Chart Objektes.

newChart.LeftAxis.AutomaticMaximum := true;
newChart.LeftAxis.AutomaticMinimum := true;
newChart.LeftAxis.AxisValuesFormat := '#,##0.###';
newChart.LeftAxis.StartPosition := 0;
newChart.LeftAxis.EndPosition := 100;
newChart.LeftAxis.PositionPercent := 0;

Hat irgendwer eine Anung woran das liegen könnte.

Danke Stephan

Phane01 9. Feb 2006 09:33

Re: Exception bei TChart Objekt
 
Hat keiner eine Idee???

marabu 9. Feb 2006 09:58

Re: Exception bei TChart Objekt
 
Herzlich willkommen in der Delphi-PRAXiS, Stephan.

In deinen Beschreibungen ist der Fehler nicht zu entdecken - vielleicht im Code? Hast du die fatalen Werte einmal isoliert?

Freundliche Grüße vom marabu

Phane01 9. Feb 2006 10:05

Re: Exception bei TChart Objekt
 
Hallo,

ich habe die Werte mal in ein LogFile geschrieben und danach in ein statische TChart element eingefügt. D.h. auf eine Form ein Chart Objekt gezogen und dann Werte hinzu. Das funktioniert perfekt. Das Chart Objekt skaliert sich von selber und zeigt die Werte korrekt an.
Mir scheint ich habe irgendwas beim dynamischen erstellen des Chart Objektes vergessen??? Wie schaut's mit den Events zu dem Objekt aus?
Diese sind bei mir alle nil, wenn ich den Chart dynamisch erzeuge. Benötige ich vielleicht eines dieser Events???

Stephan

marabu 9. Feb 2006 10:12

Re: Exception bei TChart Objekt
 
Mit den Events hat das sicher nichts zu tun. Wen gibst du als Owner für die vielen Chart-Objekte an? Wann setzt du die parent property? Kannst du die Werte zur Verfügung stellen mit denen sich der Fehler nachvollziehen lässt? Welche Version der Chart-Komponente verwendest du?

marabu

Phane01 9. Feb 2006 10:25

Re: Exception bei TChart Objekt
 
Ich verwende die Version TeeChart Standard Vers. 4.04.

Das erzeugen der Objekte geschieht folgendermaßen.
// neues Chart Objekt
newChart := TmyChart.Create(ScrollBox1);
// Parent zu Objekt
newChart.Parent := ScrollBox1;

Die Werte die in den entsprechenden Chart eingetragen werden sollen, sind der Form:
x-Value y-Value

09.02.2006 11:22:06 93300
09.02.2006 11:22:16 93300
09.02.2006 11:22:26 93400
09.02.2006 11:22:36 93300

also eigentlich nix besonderes.
Was mich irritiert ist, das Werte kleiner als 1000 ohne Probleme in dem Chart angezeigt werden.
Eine Sache habe ich noch festgestellt. Ich verwende in dem Diagramm ein Raster auf beide Achsen. Bei großen Werten sieht es so aus, als wenn das Raster über die Zeichenfläche des Diagramms hinaus gezeichnet wird.

Stephan

Phane01 9. Feb 2006 10:58

Re: Exception bei TChart Objekt
 
Die Werte die in den entsprechenden Chart eingetragen werden sollen, sind der Form:
x-Value; y-Value

09.02.2006 11:22:06; 93300
09.02.2006 11:22:16; 93300
09.02.2006 11:22:26; 93400
09.02.2006 11:22:36; 93300

Stephan

marabu 9. Feb 2006 11:33

Re: Exception bei TChart Objekt
 
Ich habe mit dynamisch erstellten Komponenten (chart, lineSeries) und deinen Werten getestet und kein Problem beobachten können.

Delphi-Quellcode:
procedure TTestForm.FormCreate(Sender: TObject);
var
  chart: TChart;
  ls: TLineSeries;
begin
  chart := TChart.Create(self);
  chart.Parent := ScrollBox;
  ls := TLineSeries.Create(chart);
  chart.AddSeries(ls);
  ls.AddXY(now + 10 * OneSecond, 93300);
  ls.AddXY(now + 20 * OneSecond, 93300);
  ls.AddXY(now + 30 * OneSecond, 93400);
  ls.AddXY(now + 40 * OneSecond, 93300);
end;
Wie kann ich dir noch helfen?

marabu

Phane01 9. Feb 2006 11:54

Re: Exception bei TChart Objekt
 
Kannst Du das ganze nochmal mit einer TFastLineSeries probieren.

Danke Stephan

marabu 9. Feb 2006 12:19

Re: Exception bei TChart Objekt
 
Auch mit einer FastLineSeries kann ich die Testdaten anzeigen. Die Randbedingungen sind natürlich verschieden. Ich arbeite mit einer synthetischen Minimalanwendung, verwende die Original-Komponente ohne deine Erweiterungen und die Testdatenmenge ist nicht repräsentativ. Du solltest versuchen das Problem in einem Testprojekt zu isolieren. Kommst du dem Fehler damit noch nicht auf die Spur, dann kannst du dieses Projekt hier einstellen und die Chance auf erfolgreiche Hilfe wächst.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.
Seite 1 von 2  1 2      

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