Autor Beitrag
kandesbunzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 116
Erhaltene Danke: 1


Delphi 7, XE2
BeitragVerfasst: Mo 30.04.18 16:33 
Hallo,

ich habe ein Edit-Feld, in welches Text eingegeben werden kann.

Wenn der Text länger als das Edit-Feld ist, möchte ich den vollständigen Text beim Mausover als Hint/Tooltip anzeigen lassen.

Wie kann ich das am besten bewerkstelligen?

Danke und vG!
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Mo 30.04.18 17:00 
es gibt bei den Controls eine Option Hint, der du jeweils den aktuellen Inhalt zuweisen kannst.
Um den dann anzuzeigen definierst du einfach ein OnMouseMove-Event für dieses Objekt und setzt dort edit1.ShowHint := true;

das war's ;)

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 30.04.18 21:06 
ShowHint kann man auch gleich im Objektinspektor oder per Quelltext mit dem Hint setzen.

Zur direkten Anzeige des Hints (mit ShowHint auf True und gesetztem Hint), so dass er an der Maus klebt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
// im OnMouseMove des Edits:
  Application.ActivateHint(Mouse.CursorPos);
// im OnMouseLeave des Edits:
  Application.HideHint;
kandesbunzler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 116
Erhaltene Danke: 1


Delphi 7, XE2
BeitragVerfasst: Di 01.05.18 19:44 
Danke für eure Rückmeldungen.

Ich habe im Objektinspektor für Edit1 das ShowHint auf true gestellt. Für TextHint habe ich Edit1.Text zugewiesen.

Wenn ich bei OnMouseMove nun edit1.ShowHint oder edit1.ShowHint := true eintrage, erhalte ich die Fehlermeldung, dass edit1.ShowHint bzw. edit1.ShowHint := true kein gültiger Bezeichner ist.

Irgendwie stehe ich auf dem Schlauch ...
mandras
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: Di 01.05.18 21:02 
Mach einmal einen Doppelklick ins Eingabefeld für OnMouseMove.

Die IDE erstellt dann die erforderl. Prozedurdeklaration für das Form sowie die Prozedur selbst
(bzw. den Prozedurrahmen, mehr ist das ja nicht).

Darin kannst Du dann eigenen Code eingeben.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 02.05.18 08:56 
user profile iconkandesbunzler hat folgendes geschrieben Zum zitierten Posting springen:
Für TextHint habe ich Edit1.Text zugewiesen.
TextHint ist etwas anderes, siehe Doku:
docwiki.embarcadero....Ctrls.TEdit.TextHint
Was du brauchst ist schlicht die Property Hint.

user profile iconkandesbunzler hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich bei OnMouseMove nun edit1.ShowHint oder edit1.ShowHint := true eintrage, erhalte ich die Fehlermeldung, dass edit1.ShowHint bzw. edit1.ShowHint := true kein gültiger Bezeichner ist.
Das bringt dort ohnehin nichts, da du es bereits im Objektinspektor gesetzt hast. Du musst dort schon die Anzeige des Hints direkt aktivieren wie ich es geschrieben habe oder die Maus nicht bewegen und auf den Hint warten.