digi_c hat folgendes geschrieben: |
VIRTUALTREEVIEW ist wirklich sehr leistungsfähig, ich glaube damit kriegst du sowas umgesetzt... |
Moin
Sicherlich ist VirtuelTreeView dafür auch geeignet, aber wäre das nicht mit Kanonen auf Spatzen geschossen!? Ich meine von der gewaltigen Funktionalität des VT gesehen wäre das für die geforderte/gewünschte Darstellung eines einfachen TreeView doch etwas zu viel...
Folgender Denkanstoß:
erstelle für den KindKnotenText einen 'formatierten' String, wo die Einträge immer schön an der gleichen Stelle stehen. Ein kleines Beispiel:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| function KindKnotenBezeichnung(CONST Datum: TDateTime; InfoText: String; Betrag: Extended): String; var S: String[50]; I: Integer; T: String; begin S := StringOfChar(' ',50); try T:= DateToStr(Datum) for I := 1 to Length(T) do S[I] := T[I]; except end;
for I := 1 to Length(InfoText) do S[I+12] := InfoText[I];
try T:= FloatToStr(Betrag); for I := 1 to Length(T) do S[I+39] := T[I]; except end; RESULT := S; end; |
In der Routine für das Erstellen des Childs sähe das dann so aus
AddChild(Node, KindKnotenBezeichnung(irgendeinDatum,irgendeinText,irgendeinBetrag));
Damit im TreeView die gewünschte saubere Darstellung (alles schön untereinander) dargestellt wird, muss für TreeView.Font bspw. Courier oder CourierNew oder jede andere Schriftart MIT FESTER ZeichenBreite gewählt werden!
Gruß