Autor Beitrag
MaltiMartin
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 02.03.06 14:17 
Hallo.

Mal wieder ein Problem (und ich hoffe, daß das noch keiner beantwortet hat, finde nix dazu):

Kann ich in einem TTreeview mit Tabulatoren arbeiten? Bekomme leider keine hin mit dem Standard-Tab-Befehl. Und analog zu den variablen Tabulatoren, die man in einer TListbox mit Sendmessage erzeugen kann, hat es auch nicht geklappt.

Vielen Dank im voraus für die Mühe.

Gruß, Martin
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Do 02.03.06 18:17 
Also meinst du Einrückungen? Ohne eigene abgeleitetes Control läuft da wohl nichts...
MaltiMartin Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 02.03.06 21:01 
Puh, das ist dann wieder zu hoch für mich.

Ich möchte pro Child ein Datum, ein bis zwei kurze Wörter und einen Betrag darstellen. Und das soll im voll expandierten Zustand alles genau übereinander stehen.

Kannst du mir einen Tip geben, sonst verwerfe ich das ganze.

Gruß, Martin
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Fr 03.03.06 08:14 
Suche bei Delphi-Treff VIRTUALTREEVIEW ist wirklich sehr leistungsfähig, ich glaube damit kriegst du sowas umgesetzt...
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Fr 03.03.06 14:56 
user profile icondigi_c hat folgendes geschrieben:
Suche bei Delphi-Treff 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:

ausblenden volle Höhe Delphi-Quelltext
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:
  //-- Delphi-VErsion 5 EP
  function KindKnotenBezeichnung(CONST Datum: TDateTime; InfoText: String; Betrag: Extended): String;
    var S: String[50];
        I: Integer;
        T: String;
  begin
    //--String S vorbelegen mit Leerzeichen
    S := StringOfChar(' ',50);
    //-- Aufbau des Knotentextes:
    //--          1         2         3         4         5 
    //-- 12345678901234567890123456789012345678901234567890
    //-- TT.MM.JJJJ  Infotext                   Betrag

        //-- Datum ab 1.Stelle
    try 
      T:= DateToStr(Datum)
      for I := 1 to Length(T) do
        S[I] := T[I];
    except
      //--Fehlerbehandlung
    end;


    //-- InfoText ab der 13.Stelle
    for I := 1 to Length(InfoText) do
      S[I+12] := InfoText[I];

    //--Betrag ab 40.Stelle
    try
      T:= FloatToStr(Betrag);
      for I := 1 to Length(T) do
        S[I+39] := T[I];
    except
      //--Fehlerbehandlung
    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ß