AGB  ·  Datenschutz  ·  Impressum  







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

TChart X-Achsen Label Problem

Ein Thema von TurboMagic · begonnen am 2. Okt 2020 · letzter Beitrag vom 3. Okt 2020
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 10:48
Hallo,

ich habe ein Chart dass über die Zeit Messpunkte aufzeichnen soll.
Habe ich nur eine Kurve drin ist alles schön, füge ich später eine zweite Kurve
hinzu gibt es teilweise überlappende X-Achsen Labels, siehe Anhang.

Die X-Achse ist der Zeitstempel und die Messdaten der Kurven kommen zu unterschiedlichen
Zeitpunkten einzeln rein.

Ich habe jetzt versucht über das Increment der X-Achse nur jede Sekunde ein Label zu haben,
das macht er aber irgendwie nicht.

Ich nutze D10.3.3 und das dort enthaltene TChart.

Hier der Code zum Hinzufügen einer Achse:

Delphi-Quellcode:
function TScopeLogic.CreateSeries(SeriesName:string): TFastLineSeries;
begin
  result := TFastLineSeries.Create(FChart);

  result.ParentChart := FChart;
  result.Title := SeriesName;
  result.Visible := true;
  result.Pen.Width := 2;
  result.Active := true;
  result.ShowInLegend := true;
  result.XValues.DateTime := true;
  result.CustomHorizAxis := FChart.BottomAxis;
  result.CustomHorizAxis.Increment := DateTimeStep[dtOneSecond];
end;
Und hier das Hinzufügen eines Wertes, wobei RecValue ein Single mit
dem eingelesenem Messwert ist:

Series.AddXY(now, RecValue, DateTimeToStr(now)); Was mache ich falsch?
Miniaturansicht angehängter Grafiken
tchart.png  
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 11:17
Lass doch den dritten Parameter, die explizite Achsenbeschriftung, mal weg.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 11:19
Oder ihn nur dann setzen, wenn sich die Zeit geändert hat. Das hieße: Nur der erste Eintrag zu einer Sekunde wird "belabelt"?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#4

AW: TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 11:25
Hilft leider nicht. Dann werden gar keine X-Achsen Labels mehr angezeigt und wenn ich
die 2. Kurve dann hinzufüge werden deren Y-Werte im Diagramm auch nicht angezeigt,
obwohl die Y-Achse passend skaliert.

Ich habe jetzt auch testweise Automatic der CustomHorizAxis auf true gesetzt.
Ändert daran aber nichts.

=> warum werden ohne Angabe des 3. parameters bei AddXY keine X-Achsen Labels
angezeigt?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#5

AW: TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 11:26
Oder ihn nur dann setzen, wenn sich die Zeit geändert hat. Das hieße: Nur der erste Eintrag zu einer Sekunde wird "belabelt"?
Die Idee hat einen gewissen Charme!
Fraglich ist nur, ob die automatische Ermittlung von TChart (Zwecks Bildschirmskalierung usw.) da auch mitspielt.
Muss das mal testen, einen ähnlichen Ansatz hatte ich gestern schon mal erfolglos probiert.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#6

AW: TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 11:31
Hm, im ersten Versuch scheint das zu funktionieren...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: TChart X-Achsen Label Problem

  Alt 2. Okt 2020, 14:55
Du kannst auf der Achse einstellen ob die sich nach explizit vergebenen Labels, automatisch oder sonst was richten soll.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#8

AW: TChart X-Achsen Label Problem

  Alt 3. Okt 2020, 12:21
Weil ich das mit dem Scrollen jetzt nicht richtig hinbekommen habe, habe ich es jetzt ganz anders gelöst.

Ich arbeite wieder mit intern ID basierten Achsen, gebe die Werte mit AddXY aus und habe meinen eigenen
Serienübergreifenden MaxX Zähler. Beim Ausgeben gebe ich den aktuellen Zeitstempel mit aus, habe jetzt aber
das Event gefunden, welches beim Zeichnen dieser Achsen Label aufgerufen wird und dort setze ich den
auszugebenden Text auf Leer wenn das Event für die horizontale Achse aber nicht die erste Serie meiner
eigenen Serienliste (ich brauche da weitere Infos daher eigene Liste) ist. Denn die erste Serie in meiner
Liste ist immer die am längsten laufende.

Dadurch funktioniert das Scrollen sauber und es werden auch keine X-Achsen Labels übereinander gezeichnet.
Was noch nicht ganz richtig funktioniert ist das manuelle Scrollen mit dem von mir hinzugefügten Scrollbar,
da ist aber evtl. noch ein Programmierfehler drin der dafür sorgt, dass trotz maximalem Scrollbar Wert nicht
der aktuellste Teil des CHarts dargestellt wird. Für ältere CHartbereiche funktioniert es aber.
  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 05:28 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