Ich benutze Delphi 10.3 mit TeeCharts.
Ich würde gerne die Marks meiner horizontalen Balken auf die Balken setzen. Standardmässig sind sie immer rechts nebendran.
Wenn man den Designer benutzt, gibt es unter Series1->Format->Size die Checkbox "Marks on Bar". Darunter eine Combobox mit Location "Center", "Start", und "End". Wenn die Checkbox gecheckt ist und die Combobox auf "Start" ist, sind die Marks exakt so, wie ich sie haben will. Nun will ich das aber programmatisch, ohne Designer machen, doch ich kann diese "MarksOnBar" (oder ähnliches) Eigenschaften einfach nicht finden. Ich habe alle Properties von THorizBarSeries, TSeriesMarks etc. angeschaut, aber nichts.
Andere Lösungen für dieses Problem habe ich im Internet gefunden, doch die sind für mich nicht zufriedenstellend, da sie einfach die "Arrowlength" der Marks auf einen negativen Wert setzen. Dies hat aber die Auswirkung, dass die Marks je nach grösse der Balken positioniert sind (BreiteDesBalkens - Arrowlenght: WieEsIst.png), anstatt gleich rechts von der linken Achse (LeftAxis.left + 20 WieEsSeinSoll.png).
(FChart[0] as TCustomBarSeries).MarksOnBar := True;
(FChart[0] as TCustomBarSeries).MarksLocation := mlStart;
THorizBarSeries erbt von TCustomBarSeries.
Weisst du vielleicht, wieso ich die Properties nur so ansprechen kann? Ansonsten gibt es bei mir "Undeclared identifier 'MarksLocation'".
Schon okay, ich hab's selbst herausgefunden. FChart[0] gibt einfach eine TSeries zurück. Deswegen kann ich die Eigenschaften von TCustomBarSeries nicht aufrufen.
Tipp: Merke dir deine Serien besser in eigenen Variablen, kostet ja nichts. Damit hast du nicht nur den Typen (THorizBarSeries) sicher, sondern dir fliegt auch weniger um die Ohren wenn du mal die Reihenfolge der Serien änderst