![]() |
Mal wieder TChart - Index des angeklicken Punktes ermitteln
Hi zusammen,
ich versuche in einem TChart herauszufinden, welchen Punkt der Series der User angeklickt hat. Dazu gibt es ja die Funktion "GetCursorValueIndex". Diese ist allerdings sehr "intolerant"...;) Und reagiert schon nicht mehr, wenn man nur knapp daneben klickt (bzw. liefert dann -1). Gibt es nicht eine Möglichkeit, den Bereich dieser Funktion etwas großzügiger zu gestalten? Oder gibt's noch 'ne andere Funktion, die ähnliches leistet, die ich aber übersehen habe...?! Besten Dank für eure Hilfe! Sven |
Re: Mal wieder TChart - Index des angeklicken Punktes ermitt
Hallo Sven,
also ich benutze für sowas eigentlich das OnSeriesClicked-Event des TChart. Für Dragging von Werten merke ich mir hier den Index und verschiebe dann die Y-Werte des Chart. Funktioniert meiner Meinung nach recht tolerant. Ich habs jetzt nicht ausprobiert aber vielleicht ist auch die Größe der Punkte/Marks entscheidend ? mfg cg |
Re: Mal wieder TChart - Index des angeklicken Punktes ermitt
Lt. D7-Online-Hilfe zur Methode Clicked von TCustomSeries: "Angeklickt bedeutet, daß sich die X- und Y-Koordinaten innerhalb der Bildschirmregiongrenzen der Punkte befinden." Daraus folgt, dass du die Punkte größer machen musst, wenn die Empfindlichkeit nicht passt. Generell erscheint mir das Treffen auch kleiner Punkte leichter zu sein, wenn man eine visuelle Unterstützung durch einen anderen Mauscursor erhält. Dazu wäre z.B. folgender Code im OnMouseMove-Event für TChart geeignet:
Delphi-Quellcode:
procedure TForm1.ChartMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var cp : TChartClickedPart; begin Chart.CalcClickedPart(point(X,Y), cp); if (cp.Part in [cpLegend, cpAxis, cpTitle, cpFoot, cpSeries]) then Screen.Cursor := crHandPoint else Screen.Cursor := crDefault; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz