AGB  ·  Datenschutz  ·  Impressum  







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

TChart mit Zeitskala

Ein Thema von DelphiManiac · begonnen am 19. Nov 2009 · letzter Beitrag vom 20. Nov 2009
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

TChart mit Zeitskala

  Alt 19. Nov 2009, 11:18
Hallo,

ich nutze die Komponente TChart und brauche da ein wenig Hilfe:

Ich will Jede Sekunde den Chart mit einem Messwert Füllen (Temperatur zu Zeit)
Y -Achse Temp
X -Achse Zeit

Wenn ich jetzt das im Timer mach sieht das so aus:

Timer.Tag wird alle 1 Sek hochgezählt
Delphi-Quellcode:
  
  lnAkuelleInnenTemp.AddXY(Timer1.Tag,Temps.TempInnen.temp * 0.1);
  lnAktuelleAussenTemp.AddXY(Timer1.Tag,Temps.TempAussen.temp * 0.1);
Nun habe ich aber nach zB. 1000 Sekunden ein Problem, ich will dann nach 60 sek nicht mehr Sekunden sondern Minuten anzeigen und vielleicht nach 60 Minuten die Stunden.
Also ich will meine Skalendarstellung (Beschriftung) anpassen je nach vergangener Zeit.

Könnt ihr mir da einen Tipp geben?

Vielen Dank
Gruß
DelphiManiac
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: TChart mit Zeitskala

  Alt 19. Nov 2009, 13:26
Definiere die X-Achse als Zeit (im Series-Pane) und packe nicht die Sekunden als Integer, sondern 'Sekunden/86400' als X-Wert in die Series rein.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#3

Re: TChart mit Zeitskala

  Alt 19. Nov 2009, 14:19
Muss ja irgendwie so gehen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  i := 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  j : Integer;
begin
  inc(i);

  case i of
    1..60 : begin
              Chart1.BottomAxis.DateTimeFormat := 'hh:nn:ss';
            end;
    61 : begin
              for j := 1 to 59 do
               Series1.Delete(0); // ersten 59 Sekunden löschen

              Chart1.BottomAxis.DateTimeFormat := 'hh:nn';
            end;
    else begin
              if i mod 60 <> 0 // jede Minute 1 Wert stehen lassen
               then Series1.Delete(Series1.XValues.Count -1);
            end;
  end;

  Series1.AddXY(now, Random(100), '', clTeeColor);
end;
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#4

Re: TChart mit Zeitskala

  Alt 20. Nov 2009, 08:00
@alzaimar:

Hey erstmal Danke,

wo genau finde ich denn die Einstellung (Series Pane?)
In der Konfig für den gesamt Graph oder für die einzelnen Series?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TChart mit Zeitskala

  Alt 20. Nov 2009, 09:08
IMHO in der Series.

Series.XValues.DateTime:=true; oder do ähnlich
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 20:09 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