![]() |
TChart X-Achsen Label Problem
Liste der Anhänge anzeigen (Anzahl: 1)
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:
Und hier das Hinzufügen eines Wertes, wobei RecValue ein Single mit
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; dem eingelesenem Messwert ist:
Delphi-Quellcode:
Was mache ich falsch?
Series.AddXY(now, RecValue, DateTimeToStr(now));
|
AW: TChart X-Achsen Label Problem
Lass doch den dritten Parameter, die explizite Achsenbeschriftung, mal weg.
|
AW: TChart X-Achsen Label Problem
Oder ihn nur dann setzen, wenn sich die Zeit geändert hat. Das hieße: Nur der erste Eintrag zu einer Sekunde wird "belabelt"?
|
AW: TChart X-Achsen Label Problem
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? |
AW: TChart X-Achsen Label Problem
Zitat:
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. |
AW: TChart X-Achsen Label Problem
Hm, im ersten Versuch scheint das zu funktionieren...
|
AW: TChart X-Achsen Label Problem
Du kannst auf der Achse einstellen ob die sich nach explizit vergebenen Labels, automatisch oder sonst was richten soll.
|
AW: TChart X-Achsen Label Problem
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 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