TaChart und Legende

Rund um die LCL und andere Komponenten

TaChart und Legende

Beitragvon twbonn » 20. Aug 2019, 13:37 TaChart und Legende

Erstmal freue ich mich, dass es andlich mit der Registrierung und Freischaltung geklappt hat. Bisher habe ich schon manch hilfreiches hier gelesen und umgesetzt.Jetzt kommt meine erste Frage:

Ich entwickele eine messtechnische Software weiter, die ihre Ursprünge zu MSDOS-Zeiten hat. Dazu braucht es natürlich TACharts.
Was ich nun möchte, ist die einzelnen Lineseries mit mit verschiedenen Bezeichnungen versehen, z.B. "MessKanal_U3.1" und "Spannung über den Kontakten".
Was ich nicht möchte, ist direkt auf den Chart-Canvas zu schreiben .

Wie gehe ich am geschicktesten vor ?

fragt
Thomas
twbonn
 
Beiträge: 2
Registriert: 23. Mai 2019, 10:23

Beitragvon af0815 » 20. Aug 2019, 15:03 Re: TaChart und Legende

Nach dem Studium der Wiki https://wiki.freepascal.org/TAChart/de, besser ist die enlische Seite https://wiki.freepascal.org/TAChart - werden die meisten Fragen beantwortet sein.

Bei Lazarus ist auch ein eigener Example folder mit vielen Beispielen dabei. Das ist über das Tools Menü erreichbar. Dort unter Projects einfach Chart eingeben und du bekommst jede Menge an Beispielen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3764
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon wp_xyz » 20. Aug 2019, 15:36 Re: TaChart und Legende

Normalerweise schreibt man diese Information in die Legende. Dazu hat jede Series eine Eigenschaft "Title" - das ist der Text, der in der Legende für die Kurve erscheinen soll. Wenn jetzt noch im Chart Legend.Visible auf true gesetzt ist, erscheint die Legende automatisch. Sie kann mit Chart.Legend.Alignment grob platziert werden. Zur feineren Positionierung gibt es noch Chart.Legend.MarginX und .MarginY. Sowie .UseSideBar, ob die Legende außerhalb (true) oder innerhalb (false) der Plot-Fläche gezeichnet werden soll.

Evtl willst du auch im Chart neben der Series einen Text zeigen, der die Kurve kennzeichnet. Freie Positionierung von Texten innerhalb des Charts wird zwar nicht unterstützt, aber der Text sollte ja eher nicht frei positioniert sein, sondern mit den Datenpunkten verbunden sein. Für die Beschriftung von Datenpunkten hält TAChart im Datenrecord auch ein Text-Feld vor. Du könntest ein DataPointClickTool verwenden - dadurch wird ein Klick auf dem Datenpunkt, der mit dem Kurvennamen beschriftet werden soll, erkannt. In dem Ereignis OnPointClick durchläufst du dann alle Datenpunkte der Series, leerst die Beschriftungsfelder bis auf den einen geklickten Datenpunkt, bei dem das Beschriftungsfeld im Datenrecord auf den Title der Series gesetzt wird. Damit die Datenpunktbeschriftung angezeigt wird, musst du noch die Eigenschaft (Series).Marks.Style auf smsLabel setzen.

Schau dir das beigefügte Beispielprogramm an - dort wird das alles durchexerziert. Über die ChartTools gibt es mehrere Tutorials im wiki (z.B. https://wiki.lazarus.freepascal.org/TAC ... hart_Tools).
Dateianhänge
series_labeler.png
SeriesLabeler.zip
(2.69 KiB) 4-mal heruntergeladen
wp_xyz
 
Beiträge: 2974
Registriert: 8. Apr 2011, 09:01

Beitragvon twbonn » 20. Aug 2019, 17:16 Re: TaChart und Legende

.. ihr seid ja schnell ...

Ich habe mein Problem mit der Bennenung von physikalischem und logischen Kanal jetzt so gelöst, dass ich die "physikalische" Bezeichnung in FCharts[i].LeftAxis.Title.Caption packe und die "logische" Bezeichnung in LineSeries.Title, die über Legend.visible eingeblendet und über Legend.UseSideBar,Legend.Margin, etc. positioniert werden.

ChartToolsets benutze ich reichlich und gerne; auch die ChartNavScrollBar finde ich sehr hilfreich :-)

Grüße aus Bonn
Thomas
twbonn
 
Beiträge: 2
Registriert: 23. Mai 2019, 10:23

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried