![]() |
Delphi-Version: 2005
Problem bei der Hint anzeige
Hey DP'ler
ich hab ein kleines Problem bei der Hint anzeige auf meinem TChart. Hier erstmal der Code: Aufruf über:
Delphi-Quellcode:
Dann der eigentliche Code
procedure TFrm_Messung.Ch_MessungMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); begin ShowSeriesHint(Mouse.CursorPos.X ,Mouse.CursorPos.Y); end;
Delphi-Quellcode:
Das Problem ist nun das der Hint, reproduzierbar, immer erst auftaucht, wenn ich auf das Chart klick, und eigentlich sollte er ja erscheinen wenn man drüber fährt. Oder hab ich irgendwo einen Denkfehler?
procedure Tfrm_messung.ShowSeriesHint(X,Y:Integer);
begin Ch_Messung.Hint := 'Dies ist ein Hinweis'; //ShowHint auf True setzen if Ch_Messung.ShowHint = False then Ch_Messung.ShowHint := True; //Col und Row Position lesen if (Mouse.CursorPos.X <> lastX) or (Mouse.CursorPos.Y <> lastY) then begin Application.CancelHint; Lastx := Mouse.CursorPos.X; Lasty := Mouse.CursorPos.Y; end; end; |
AW: Problem bei der Hint anzeige
Wenn die aktuelle Mausposition von der gemerkten abweicht, rufst Du Application.CancelHint auf. Ob das so richtig ist? Außerdem vergleiche bitte nie auf true/false, zumal die Abfrage IMO überflüssig ist. Und wieso übergibst Du die Screen-Koordinaten der Maus, brauchst Du die später noch? Ansonsten würden es X und Y ja genauso tun.
|
AW: Problem bei der Hint anzeige
Also ich ruf Application.CancelHint auf um wenn er die Maus wieder bewegt der Hint nicht mehr an der alten Position angezeigt wird sondern an der neuen. Das mit X, Y hast du recht da hab ich nur getestet obs vllt an der übergabe liegt.
|
AW: Problem bei der Hint anzeige
Müsste es dann nicht andersherum sein (erst abbrechen, dann neu anzeigen)?
Delphi-Quellcode:
procedure Tfrm_messung.ShowSeriesHint(X,Y:Integer);
begin //Col und Row Position lesen if (X <> lastX) or (Y <> lastY) then begin Application.CancelHint; Lastx := X; Lasty := Y; end; Ch_Messung.Hint := 'Dies ist ein Hinweis'; //ShowHint auf True setzen Ch_Messung.ShowHint := True; end; |
AW: Problem bei der Hint anzeige
Genau das gleiche Problem, erst wenn ich auf das Chart klick erscheint der Hint.
|
AW: Problem bei der Hint anzeige
Ich habe gerade kein Delphi zur Hand, kann aber am Nachmittag mal schauen, was das sein könnte.
[edit] Entspricht dies hier in etwa dem, was Du erreichen möchtest?
Delphi-Quellcode:
[/edit]
procedure TfrmMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if (X <> OldX) or (Y <> OldY) then begin Application.ActivateHint(Mouse.CursorPos); OldX := X; OldY := Y; end; end; |
AW: Problem bei der Hint anzeige
fast ich will eigentlich die Werte von den Series anzeigen die auf der Chart sind.
|
AW: Problem bei der Hint anzeige
Du kannst den Hint doch vor dem Application.ActivateHint neu belegen.
|
AW: Problem bei der Hint anzeige
Zitat:
|
AW: Problem bei der Hint anzeige
Zitat:
|
AW: Problem bei der Hint anzeige
Liste der Anhänge anzeigen (Anzahl: 1)
Ich weiß keine genaue Lösung aber für komplexe Hints kann ich die AlphaControls empfehlen, die einen Hintmanager enthalten (geht auch ohne Skin-Modus).
Die Hints können als Frames hinterlegt werden und der Hintmanager weist dann die gewünschten Inhalte zu. Das Handling ist sehr flexibel und komfortabel. In meinem Fall lasse ich den Hint jede Sekunde neu zeichnen, so dass ich einen laufenden Timer darstellen kann (siehe Bild). Ob der Hintmanager in der kostenfreien Version dabei ist, weiß ich jetzt aber nicht. |
AW: Problem bei der Hint anzeige
Ab D2007 oder D2009 geht das auch ohne Fremdkomponenten
|
AW: Problem bei der Hint anzeige
Ich dachte, das Problem sei weitestgehend gelöst. :gruebel:
|
AW: Problem bei der Hint anzeige
Is es auch. Also macht euch mal keine Sorgen mehr über das :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 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-2025 by Thomas Breitkreuz