Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

TChart nur einen Mark zeigen und nicht alle

  Alt 2. Okt 2019, 18:48
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.

Geändert von DieDolly ( 2. Okt 2019 um 19:21 Uhr)
  Mit Zitat antworten Zitat