![]() |
Re: DBChart -> Markierung anzeigen, wenn Maus über Punkt
Hat hier keiner eine Lösung. Was man im Editor des Charts einstellen kann muss man doch auch Code-technisch beeinflussen können ?
|
Re: DBChart -> Markierung anzeigen, wenn Maus über Punkt
Hallo Holger,
die entsprechende Eigenschaft heißt Visible:
Delphi-Quellcode:
Da sie die Sichtbarkeit generell für alle Markierungstexte steuert, wirst du etwas tricksen müssen.
DemoChart.Series[0].Marks.Visible := False;
Freundliche Grüße |
Re: DBChart -> Markierung anzeigen, wenn Maus über Punkt
Das ist schon mal fantastisch. Wüsstest Du denn auch wie man jede einzelne Bezeichnung (Mark) einer Serie ein-/ausblenden kann ?
Gruss Holger |
Re: DBChart -> Markierung anzeigen, wenn Maus über Punkt
Wenn du die Quellen zur Chart-Komponente verfügbar hast, dann kannst du da sicherlich etwas richten, aber im Auslieferungszustand kann nur die Sichtbarkeit aller Marks gemeinsam geschaltet werden. Mit Trickserei meinte ich, dass du natürlich die Marks komplett leer lassen kannst und erst beim Chart.OnMouseMove() über Series[index].Marks.Clicked() genau den ValueMarkText[] füllst, der als einziger gezeigt werden soll.
Warum willst du die Anzeige denn nicht über die Hint-Technik machen? |
Re: DBChart -> Markierung anzeigen, wenn Maus über Punkt
Hi,
danke für die ganzen Hinweise. Ich habe jetzt beides umgesetzt: Um eine Übersicht zu haben, zeige ich alle Punkte mit Markierung an. Die Markierungen kann man dann mit einer CheckBox ausblenden. Zusätzlich erscheint, wenn man die Mouse über den Punkt bewegt die Information im Hint ! Habe das so mit dem Hint gelöst:
Delphi-Quellcode:
Mit der Variante brauchte ich nicht diesen HintRefresh beeinflussen. Der einzige Nachteil ist, das man nachdem der Hint erschienen ist, einmal mit der Maus klicken muss damit der Hint verschwindet und der nächste Hint beim überfliegen mit der Maus angeziegt werden kann. Das Refresh mache ich mit ShowHint = False und wieder True.
procedure TForm1.DBChartMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); var I: Integer; Index: Integer; begin DBChart.ShowHint := FALSE; DBChart.Hint := ''; DBChart.ShowHint := TRUE; I := 0; For I := 0 To DBChart.SeriesCount - 1 do begin If DBChart.Series[I].GetCursorValueIndex >= 0 Then begin Index := DBChart.Series[I].GetCursorValueIndex; DBChart.Hint := DBChart.Series[I].ValueMarkText[Index]; end; end; end; Vielleicht kann das ja einer noch verfeinern, aber die Lösung gefällt mir schon. Gruss Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 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