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
TaChart und Legende
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
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.
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).
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).
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
-
- SeriesLabeler.zip
- (2.69 KiB) 90-mal heruntergeladen
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
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