Kann mir jemand helfen und mir sagen, wie man bei einem, TChart nur den Mark anzeigen lassen kann auf dessen Punkt sich die Maus gerade befindet?
Bisher kann ich nur alle oder keinen anzeigen lassen
Delphi-Quellcode:
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Chart1.Series[0].Marks.Visible := True;
end;
Mit
Chart1.Series[0].GetCursorValueIndex
komme ich zwar an den Index des Punktes auf dem ich gerade bin aber wie gehts weiter?
Wenn ich mich nicht blöd anstelle klappt das jetzt so.
Delphi-Quellcode:
Form Create
Chart1.Series[0].Marks.Visible := True;
Delphi-Quellcode:
Alle Marks verstecken
procedure TForm1.HideAllMarks;
var
i: Integer;
begin
for i := 0 to Chart1.Series[0].Count - 1 do
begin
Chart1.Series[0].Marks.Items[i].Visible := False;
end;
Chart1.Series[0].Repaint;
end;
Delphi-Quellcode:
Den Mark anzeigen den ich brauche
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
i: Integer;
begin
CurrentMark := Chart1.Series[0].GetCursorValueIndex;
for i := 0 to Chart1.Series[0].Count - 1 do
begin
Chart1.Series[0].Marks.Items[i].Visible := i = CurrentMark;
end;
end;
So richtig klappt das aber noch nicht dennich muss ganz genau auf der Spitze einer Linie sein, damit dieses Mark auch angezeigt wird.
Bei Punkten auf Linien die zu nah beieinander stehen wird gar nix angezeigt.