Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TChart- oder TeeChart-Frage... (https://www.delphipraxis.net/79256-tchart-oder-teechart-frage.html)

bingo72 19. Okt 2006 08:41


TChart- oder TeeChart-Frage...
 
Hallo Experten!!

Ich habe mich nun mit der Demo-Version einer TeeChart herumgespielt und nun hätte ich noch 2 Fragen:
+) Wie schafft man es auf der linken Achse auch den Minimumwert anzuzeigen?? Also wenn ich die obere Grenze mit 10 festlege und den Minimumwert mit -10 (egal, Effekt ist auch bei einem pos. Wert derselbe) dann seh ich zwar in der View die Obergrenze von 10 aber nicht die Untergrenze von -10??
+) Später sollen Daten dynamisch angezeigt werden, welche von einem Sensor kommen. Soll heissen, die Chart soll quasi in einem definierten Zeitfenster von z.b. 30 sec. die Werte anzeigen und quasi mit fortlaufender Zeitdauer 'mitwandern', wie z.b. im TaskManager (Verlauf der CPU-Auslastung oder Auslagerungsdateiauslastung). Wie macht man das?? :roll:

Bitte um Hilfe!!

LG
Thomas

v2afrank 19. Okt 2006 14:03

Re: TChart- oder TeeChart-Frage...
 
Erst einmal zu Deiner zweiten Frage
Füge jeder Series ein Afteraddereignis hinzu
Delphi-Quellcode:
procedure TMakrofenster.Series1AfterAdd(Sender: TChartSeries;
  ValueIndex: Integer);

var
 step:Double;
Const
 ZEITRAUM=30;
  begin

    step:=DateTimeStep[dtOnesecond]*ZEITRAUM;
     With Sender.GetHorizAxis do { <-- with the Horizontal Axis... }
     Begin
      Automatic := False;
      //always show the last time
      Maximum := Sender.XValues.MaxValue;
      // show only last desired interval
      Minimum := Maximum - step;
     end;
     // Delete all "invisible" points
     While (Sender.Count>0) and
      (Sender.XValues[0] < Sender.GetHorizAxis.Minimum) do
      Sender.Delete(0);

end;
Zu deiner zweiten Frage Hast Du auch automaticminimum auf false gesetzt ?

bingo72 20. Okt 2006 07:42

Re: TChart- oder TeeChart-Frage...
 
Morgen Frank!!

Danke für den Tipp!! Hätte diesen auch gerne ausgeführt....habe aber bei TChart kein AfterAdd-Ereignis zur Verfügung....nur ein AfterDraw??!!

procedure TfmMain.displaySensorDataAfterDraw(Sender: TObject);
begin

end;

LG
Thomas

bingo72 20. Okt 2006 07:47

Re: TChart- oder TeeChart-Frage...
 
Ich hätte weiters gern in der Mitte eine vertikale Linie....die auch bei der "wandernden" Anzeige, in der Mitte bleibt....quasi als Orientierung, wo man sich gerade im Video befindet...wie kann man das realisieren??

bingo72 20. Okt 2006 11:03

Re: TChart- oder TeeChart-Frage...
 
Das mit dem AfterAdd-Ereignis hat sich bereits geklärt...ist ein wenig versteckt zu finden...man muß zuerst die Series im OI auswählen.
Bleibt noch die Frage nach der senkrechten Orientierungs-Linie in der Mitte... :gruebel:

v2afrank 20. Okt 2006 12:51

Re: TChart- oder TeeChart-Frage...
 
Dazu würde mir jetzt nur einfallen, dass due eine neue Series hinzufügst, und diese immer wieder in der Mitt zeichnest. Obs schnell genug ist, kann ich Dir leider nicht sagen.

bingo72 23. Okt 2006 15:52

Re: TChart- oder TeeChart-Frage...
 
Also eine vertikale Linie zu zeichnen, das habe ich geschafft...mittels...

middleLine:=(Chart1.BottomAxis.IStartPos+Chart1.Bo ttomAxis.IEndPos) div 2;
Chart1.Canvas.DoVertLine(middleLine,Chart1.LeftAxi s.IStartPos, Chart1.LeftAxis.IEndPos);

Auch vorher konnte ich im wesentlichen schon zur Design-Time eine vertikale Linie zeichnen ... z.b. benutzerdefinierte Achsen...
Mein Problem ist nachwievor, daß sich die Linie "vertschüßt", sobald Daten in die Tee-Chart gezeichnet werden....weiß da jemand weiter??

LG
Thomas

bingo72 24. Okt 2006 12:55

Re: TChart- oder TeeChart-Frage...
 
Liste der Anhänge anzeigen (Anzahl: 2)
Weiß wirklich niemand mehr weiter??

Bilder von meinem Problem seht ihr im Anhang!!

LG
Thomas

v2afrank 24. Okt 2006 12:58

Re: TChart- oder TeeChart-Frage...
 
Was passiert, wenn Du das neuzeichnen der Mittellinie nach jedem afteradd asuführst. Meiner Meinung nach müßte Sie dann neu gezeichnet werden. Eventuell mußt Du aber noch die Berechnung des Mittelpunktes anpassen

bingo72 24. Okt 2006 13:05

Re: TChart- oder TeeChart-Frage...
 
Hallo Frank!!

Dies passiert bereits mittels....da wird auch der Mittelpunkt immer wieder neuberechnet..

procedure TfmMain.displaySensorDataAfterDraw(Sender: TObject);
var middleLine : Integer;
begin
middleLine:=(displaySensorData.BottomAxis.IStartPo s+displaySensorData.BottomAxis.IEndPos) div 2;
displaySensorData.Canvas.DoVertLine(middleLine,dis playSensorData.LeftAxis.IStartPos,
displaySensorData.LeftAxis.IEndPos);
end;

LG
Thomas

bingo72 24. Okt 2006 13:09

Re: TChart- oder TeeChart-Frage...
 
Ich hab das Gleiche auch schon mit AfterAdd der jeweiligen Serie ausprobiert...auch kein Unterschied!! LEIDER!!!

bingo72 25. Okt 2006 14:56

Re: TChart- oder TeeChart-Frage...
 
Problem um einiges reduziert!!
Grund: Ich hatte eine schwarze vertikale Linie auf schwarzem Hintergrund...geht schlecht!! :wall:
Weiß wer, wie man diese Linie die man mit DoVertLine erzeugt hat ein wenig in Farbe und Dicke umgestalten kann?? :?:

LG
Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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 by Thomas Breitkreuz