[gelöst] TAChart ListChartSource

Rund um die LCL und andere Komponenten
Antworten
Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

[gelöst] TAChart ListChartSource

Beitrag von Linkat »

Hallo,
mit Hilfe einer ListChartSource möchte ich, wie hier beschrieben:
http://wiki.freepascal.org/TAChart_Tutorial:_BarSeries
die x-Achse beschriften. Dies funktioniert auch mit dem Datenpunkt-Editor (DataPoints editor) über den Objekt-Inspektor.
Aber ich muss die Achse aus dem Programm heraus beschriften.
Wie bekomme ich die Daten in den Editor?

Wer weiß Bescheid?

Gruß, Linkat
Zuletzt geändert von Linkat am Fr 31. Mär 2017, 08:26, insgesamt 1-mal geändert.
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TAChart ListChartSource

Beitrag von wp_xyz »

Ich geb zu, das mit dem DatapointEditor ist etwas irreführend: als ich das Tutorial schrieb, war die Dateneingabe in die ListSource vorher in einem anderen Tutorial behandelt worden, da dachte ich mir: da schreibst du dasselbe nicht nochmal. In der Regel braucht man den DatapointEditor aber nicht, nur, wenn man die Daten gleich im Designmode sehen will.

OK: TListChartSource hat eine Methode

Code: Alles auswählen

function Add(AX, AY: Double; const ALabel: String = ''; AColor: TChartColor = clTAColor): Integer;

mit der du die Listsource direkt per Code befüllen kannst. Für die Anwendung als Achsenbeschriftung rate ich unbedingt, den x-Wert auch für y zu verwenden, sonst wird die gedrehte Achse bei waagrechten Balken nicht immer funktionieren.

Code: Alles auswählen

  ListChartSource1.Add(1, 1, 'Q1');
  ListChartSource1.Add(2, 2, 'Q2');
  ListChartSource1.Add(3, 3, 'Q3');
  ListChartSource1.Add(4, 4, 'Q4');

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: TAChart ListChartSource

Beitrag von Linkat »

Hallo,
vielen Dank wp_xyz für die prompte Hilfe.

Jetzt stehen die Bezeichner an der richtigen Stelle.

Aber zwei neue Probleme direkt im Anschluß:
1. In einem Chart wird zwischen einer LineSeries und der BoxAndWhiskerSeries umgeschalten.
Hierzu muss ich der property Chart1.Bottom.Marks.Style den Wert smsValue bzw. smsLabel zuweisen. Dies funktioniert im Objektinspektor. Aber aus dem Programm heraus nicht.
Ein ähnliches Problem hatte ich hier:
http://www.lazarusforum.de/viewtopic.php?f=18&t=10640
Aber ich wüsste nicht, welche unit hier fehlt.

2. Zum Umschalten von LineSeries auf BoxAndWhiskersSeries muss man der property Chart1.AxisList[1].Marks.Source die ListChartSource zuweisen, was auch vom Programm aus funktioniert. Wenn ich wieder zur LineSeries zurückspringe, muss ich die Zuweisung zur ListChartSource rückgängig machen. Wie mache ich das?

Gruß, Linkat
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TAChart ListChartSource

Beitrag von wp_xyz »

(1) Die smsXXXX Aufzählung steht in der Unit TAChartUtils.

(2) Trage als Chart1.BottomAxis.Marks.Source den Wert nil ein.

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: TAChart ListChartSource

Beitrag von Linkat »

Hallo wp_xyz,
vielen Dank für deine schnelle Hilfe.
TAChart ist eine so gute und mächtige Komponente, dass man (zumindest ich) oft den Wald vor lauter Bäumen nicht sieht. Auch seht positiv zu vermerken ist, dass die Tutorials über die Komponente im Wiki immer mehr und besser werden (wahrscheinlich zum großen Teil aus deiner Feder?).
Falls ich das Programm in den nächsten Tagen fertig bekommen sollte, dann überlege ich mir, ob ich es nicht sogar im Mai in Reinheim vorstelle.

Gruß, Linkat
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

Antworten