Chart : Linie mit Mouse auswählen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
FineBite
Beiträge: 2
Registriert: Mi 4. Jan 2017, 10:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Karlsruhe, Baden

Chart : Linie mit Mouse auswählen

Beitrag von FineBite »

Hallo werte Profis,
ich bin gerade am Einsteigen (von Delphi 3!) und bin total Begeistert! gerade vom Editor( - sorry musste es loswerden :) )und suche für eine Umstellung eines kleine Programms eine Funktion eine Linie (Series) mit der Mouse auszuwählen. Bei Delphi die >>>Chart1ClickSeries(Sender: TCustomChart; Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);<<< Funktion. Danke

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

Re: Chart : Linie mit Mouse auswählen

Beitrag von wp_xyz »

Für sowas gibt es die ChartTools - siehe http://wiki.lazarus.freepascal.org/TACh ... hart_Tools. Ich habe im Anhang eine kleine Demo zusammengestellt, wie man mit einem DatapointClickTool und einem DatapointCrossHairTool Datenpunkte und die zugehörige Series auswählen kann. Mit Hilfe des Shift-Parameters ist das DatapointClickTool so eingestellt, dass es mit einem Klick mit der linken Maustaste aktiv wird, das Crosshairtool wird aktiv, wenn man die CTRL-Taste gedrückt hält und mit der Maus ohne gedrückte Taste über einen Datenpunkt fährt. Für beide Tools wird die gefundene Information als Nachricht ausgegeben.

Schnellanleitung für das DatapointClickTool:
  • Eine TChartToolSet-Komponente aufs Formular klicken, mit der Eigenschaft Toolset des Chart verbinden
  • Doppelklick auf der ChartToolSet-Komponente > "Hinzufügen" > "Klick auf Datenpunkt" (beim CrosshairTools wäre das: "Fadenkreuz für Datenpunkte")
  • Der Eigenschaft Shift des neuen Tools die gewünschte Tastenkombination/Maustaste zuweisen, mit der das Tool aktiv werden soll
  • Ich mache beim ClickTool auch noch die Größe des Toleranzbereichs um einen Datenpunkt (GrabRadius) mit Hilfe eines SpinEdit änderbar.
  • Das Click-Tool hat ein Ereignis OnPointClick, in dem man die Information über den geklickten Datenpunkt abfragen kann. Allerdings sind die über Parameter zur Verfügung gestellen Daten sehr allgemein gehalten, und man muss Typecasts durchführen, um an die gewünschten Eigenschaften zu gelangen - siehe beigefügten Code.
Ach ja noch: Die Tools funktionieren in der Regel nur beim Click auf Datenpunkte, nicht auf die Verbindungslinien!

Und schließlich noch ein Hinweis auf die allgemeine TAChart-Dokumentation zu diesem Thema: http://wiki.lazarus.freepascal.org/TACh ... tion#Tools
Dateianhänge
charttools.zip
(2.83 KiB) 47-mal heruntergeladen

FineBite
Beiträge: 2
Registriert: Mi 4. Jan 2017, 10:08
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Karlsruhe, Baden

Re: Chart : Linie mit Mouse auswählen

Beitrag von FineBite »

hey wp_xyz, vielen Dank für die Reaktion. Werde Deinen Hinweis sobald wie möglich ausprobieren. Es ist der erste Lichtblick zu diesem Thema, Klasse!
Bis denne.
Hoi wp_xyz,
habe Deinen Tool eingesetzt und probiert. Es lassen sich einzelne Punkte finden, wenn man genügend nah (>Radius) an den Punkt kommt, jedoch ist mir eine Anwahl der Serie selbst nicht gelungen. Oder ich mach was falsch! (Wie öfter :wink: ) Ich mus noch Deine Anwendung der Tools verstehen!(ist hier gut beschrieben).
Wie kann ich einzelne Punkte/Werte einer Serie durch gehen/abrufen? Ich fürcht ich muss an einem eigenen Toll basteln! :(

Antworten