Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TChart Marks werden nur teilweise angezeigt (https://www.delphipraxis.net/211576-tchart-marks-werden-nur-teilweise-angezeigt.html)

norwegen60 6. Okt 2022 14:30

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:
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;
Grüße
Gerd

Uwe Raabe 6. Okt 2022 14:42

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.

norwegen60 6. Okt 2022 14:55

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.

himitsu 6. Okt 2022 15:05

AW: TChart Marks werden nur teilweise angezeigt
 
Zitat:

QUOTE=Uwe Raabe;1512904
[edit] war falsch [/edit]

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

norwegen60 6. Okt 2022 18:45

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:
Count - 1
. Sorry.

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

Uwe Raabe 6. Okt 2022 23:47

AW: TChart Marks werden nur teilweise angezeigt
 
Es könnte eine unglückliche Kombination von Auto Position und Draw every sein.

norwegen60 13. Okt 2022 11:18

AW: TChart Marks werden nur teilweise angezeigt
 
Ich habe mal beide Settings per GUI editierbar gemacht
Delphi-Quellcode:
Mark.AutoPosition
hatte keinerlei Auswirkung auf die angezeigten Werte. Nur darauf, ob Wert mal etwas weiter oben oder unten stand
Delphi-Quellcode:
Mark.DrawEvery
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

Selbst wenn man das Form kleiner oder größer zieht, bleibt es meist bei den beiden gleichen Marks obwohl genügend Platz ist.

Uwe Raabe 13. Okt 2022 11:43

AW: TChart Marks werden nur teilweise angezeigt
 
Dann wäre Steema wohl die nächste Anlaufstelle.

norwegen60 13. Okt 2022 12:47

AW: TChart Marks werden nur teilweise angezeigt
 
Das dachte ich auch schon
Danke trotzdem

norwegen60 14. Okt 2022 09:27

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:
TLineSeries.Marks.Visible := False;
gesetzt und dann nur die betroffenen Punkte per
Delphi-Quellcode:
TLineSeries.Marks[i].Visible := True;
aktiviert. TeeChart beachtet bei der Platzermittlung für die Marks wohl nicht dass die meisten Marks deaktiv sind.


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