Autor |
Beitrag |
JoelH
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Di 24.10.23 10:25
Folgenden Code nutze ich um in einer TreeView dynamische Hints für einzelne Nodes zu erzeugen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure Tfrm_uebersicht.tree_uebersichtHint(Sender: TObject; const Node: TTreeNode; var Hint: string); var trid, i : Integer; begin trid := TNodeData(Node.Data).RecordID; if trid > -1 then begin Hint := 'Datum: '+Tree_records[trid].MeinDATUM; if length(Tree_records[trid].Notizen) > 0 then begin Hint := Hint +#10+'Dieser Eintrag hat folgende Notizen:'+#10; for i := 0 to length(Tree_records[trid].Notizen)-1 do begin Hint := Hint + #10+Tree_records[trid].Notizen[i].BESCHREIBUNG; end; end; end; inp_test.Hint := Hint; end; |
Das funktioniert insofern, dass der Hint angezeigt wird, allerdings im Treeview nur die erste Zeile des Hints, also das Datum. Zum Test habe ich ein Edit eingefügt auf der Form und den Hint dort angehängt. Dort werden alle Zeilen, also auch die Notizinfos, im Hint angezeigt.
Ist das ein normales Verhalten bei TreeViews oder stehe ich gerade irgendwie auf dem Schlauch und habe eine bestimmte Einstellung übersehen?
_________________ mfg. Joel
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Di 24.10.23 18:43
Hey,
Ich denke es hängt vom Hint ab ob der mehrzeilig kann oder nicht. Wenn ich mich recht erinnere dann können die Delphi Hints nur einzeilig. Das ist ja eine Windows Function, das kann man auch selber aufrufen.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
JoelH
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Mi 25.10.23 07:08
Sinspin hat folgendes geschrieben : | Wenn ich mich recht erinnere dann können die Delphi Hints nur einzeilig. |
Nein, wie beschrieben, der Hint angehängt an die Edit-Komponente "inp_Text" gibt mir den gesamten, mehrzeiligen Text zurück. Deshalb vermute ich, es liegt an der TreeView-Komponente.
_________________ mfg. Joel
|
|
Th69
Beiträge: 4784
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mi 25.10.23 09:48
Gefunden habe ich folgende englische Seite: Multiline tooltips in a treeview (XE2) (also ein eigenes von TTreeView abgeleitetes Control erzeugen und die Windows-Message TTN_NEEDTEXTW behandeln)
Für diesen Beitrag haben gedankt: JoelH
|
|
Gausi
Beiträge: 8538
Erhaltene Danke: 475
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 25.10.23 10:04
Der eigentliche Hint im Treeview kann mehrzeilig sein, aber der knotenspezifische Hinweistext (der unabhängig von der Property "Hint" ist), unterstützt wohl nur einzeilige Strings.
Spricht etwas gegen den Einsatz vom VirtualStringTree, der zwar etwas Einarbeitung benötigt, aber solche Probleme nicht hat? Dort klappen mehrzeilige Hints ohne Probleme, die kollidieren nicht mit dem Standard-Hint (d.h. keine doppelte Anzeige). Und wenn man mag, kann man da das Hintfenster auch komplett selber malen und z.B. auch Bilder einfügen.
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: JoelH
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Mi 25.10.23 10:26
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Zuletzt bearbeitet von Sinspin am Mi 25.10.23 15:56, insgesamt 1-mal bearbeitet
|
|
JoelH
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Mi 25.10.23 13:49
Gausi hat folgendes geschrieben : | Spricht etwas gegen den Einsatz vom VirtualStringTree |
Nur "Bordmittel" erlaubt. Dann muss ich mir was anderes überlegen, passt schon.
_________________ mfg. Joel
|
|
Holgerx
Beiträge: 63
Erhaltene Danke: 27
Win95 - Win11 / MSServer2000 - MSServer2019
Delphi 6pro / XE4
|
Verfasst: Mi 25.10.23 16:47
Für diesen Beitrag haben gedankt: JoelH
|
|
Th69
Beiträge: 4784
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mi 25.10.23 17:55
Holgerx: Es geht nicht um den Hint für das gesamte TTreeView, sondern für die einzelnen TTreeNode-Einträge (über das OnHint-Ereignis).
Aber dein Vorschlag mittels OnMouseMove (und GetNodeAt) ist auch eine gute Alternative.
|
|
JoelH
Beiträge: 806
Erhaltene Danke: 17
Win10
Delphi Alexandria 11.2 Patch 1
|
Verfasst: Do 26.10.23 10:03
_________________ mfg. Joel
|
|
Holgerx
Beiträge: 63
Erhaltene Danke: 27
Win95 - Win11 / MSServer2000 - MSServer2019
Delphi 6pro / XE4
|
Verfasst: Fr 27.10.23 10:03
Für diesen Beitrag haben gedankt: JoelH, Th69
|
|