![]() |
TChart Marks werden nur teilweise angezeigt
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,
ich will in TChart bei den Peaks einer Kurve die X-Werte per Marker anzeigen. Das funktioniert auch teilweise, aber es werden nur wenige Marker wirklich angezeigt. Sobald ich in das Chart weiter rein zoome, werden weitere Peaks korrekt gemarkt. (s. Bilder) D.h. die Erkennung der Peaks läuft korrekt, es sieht aber so aus, als hätte TChart Bedenken, dass sich Texte überlappen obwohl genügend Platz ist. Hat jemeand eine Idee, was ich einstellen könnte, dass mehr Marker angezeigt werden? Ich habe schon lsSeries.Marks.AutoSize auf True/False gesetzt und lsSeries.Marks.Width := 10. Beides hatte keinen positiven Effekt Ich markiere per folgendem Code:
Delphi-Quellcode:
Grüße
var
lsSeries: TChartSeries; begin ... lsSeries.Marks.Visible := True; lsSeries.Marks.Transparent := True; lsSeries.Marks.Style := smsXValue; lsSeries.Marks.Arrow.Color := clBlack; lsSeries.Marks.ArrowLength := 24; for i := 0 to Value.Count do begin lsSeries.Marks[i].Visible := False; // Zunächst Marks auf unvisible setzen if Value[i] = Peak then lsSeries.Marks[i].Visible := True; end; Gerd |
AW: TChart Marks werden nur teilweise angezeigt
Wenn Peak seinen Wert innerhalb der Schleife nicht ändert, dann kann ich mir nicht erklären, wie deine Bilder zustande kommen. Nach dem Code sollten alle Marker den gleichen Wert (Peak) zeigen.
|
AW: TChart Marks werden nur teilweise angezeigt
Der Code zur Peak-Erkennung ist symbolisch gemeint.
Wie gesagt, die Erkennung läuft korrekt, nur die Darstellung nicht. Ich gebe die Koordinaten der Peaks auch in ein Memo aus und da sind alle Peaks drin. Wenn der Code nicht funktionieren würde, würde ja auch ein Zoom nichts helfen. |
AW: TChart Marks werden nur teilweise angezeigt
Zitat:
Eventuell werden Werte/Peaks weggelassen, wenn sie zu dicht beieinander sind? Zumindestens die ersten Beiden, aus dem Zoom, liegen ungezoomt ja teilweise fast übereinander. und kein -1?
Delphi-Quellcode:
for i := 0 to Value.Count do
|
AW: TChart Marks werden nur teilweise angezeigt
Vielleicht hätte ich zur Ermittlung ob Peak oder nicht mehr Code zeigen sollen, aber das ist gar nicht das Problem. Und natürlich ist es
Delphi-Quellcode:
. Sorry.
Count - 1
Aber das Problem bleibt: Die Peaks werden korrekt mit Markern versehen. Sonst würde ich sie im Zoom ja nicht sehen. Es gibt keine Zusatzfunktion/Neuberechnung beim Zoom. Und ich vermute auch dass es was damit zu tun hat, dass TChart meint sie lägen zu nah beieinander. Trotzdem ist doch genügend Platz in der Gesamtansicht um mehr als zwei Marks anzuzeigen. Wenn ich den Screen vergrößere, kommt vielleicht noch ein oder zwei dazu. Trotzdem weit davon entfernt, dass sich Marks überschneiden |
AW: TChart Marks werden nur teilweise angezeigt
Es könnte eine unglückliche Kombination von Auto Position und Draw every sein.
|
AW: TChart Marks werden nur teilweise angezeigt
Ich habe mal beide Settings per GUI editierbar gemacht
Delphi-Quellcode:
hatte keinerlei Auswirkung auf die angezeigten Werte. Nur darauf, ob Wert mal etwas weiter oben oder unten stand
Mark.AutoPosition
Delphi-Quellcode:
hat auch nur minimale Auswirkungen. Bis 6, keine Auswirkung, darüber verschiebt sich mal das Mark von einem Peak zu einem anderen. Meist bleiben es aber 2 Marks auf dem gesamten Chart. Bei 11 dann mal 5 Werte statt sonst nur 2. Bei 12 waren es dann wieder zwei
Mark.DrawEvery
Selbst wenn man das Form kleiner oder größer zieht, bleibt es meist bei den beiden gleichen Marks obwohl genügend Platz ist. |
AW: TChart Marks werden nur teilweise angezeigt
Dann wäre Steema wohl die nächste Anlaufstelle.
|
AW: TChart Marks werden nur teilweise angezeigt
Das dachte ich auch schon
Danke trotzdem |
AW: TChart Marks werden nur teilweise angezeigt
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe eine Lösung gefunden.
Ich erzeuge für die Peaks eine eigene TPointSeries. Damit funktioniert die Markierung korrekt und zusätzlich werden die Peaks auch noch visuell als Punkt dargestellt. Zuvor hatte ich ja die komplette
Delphi-Quellcode:
gesetzt und dann nur die betroffenen Punkte per
TLineSeries.Marks.Visible := False;
Delphi-Quellcode:
aktiviert. TeeChart beachtet bei der Platzermittlung für die Marks wohl nicht dass die meisten Marks deaktiv sind.
TLineSeries.Marks[i].Visible := True;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 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