Hallo,
ich habe eine Funktion geschrieben, die mein TreeView füllt.
Ich gebe meinem Treeview ein ADODataSet rein, welches schon gruppiert und sortiert ist. Die Funktion fuelleTreeView bringt es in die richtige Anzeige.
Jetzt möchte ich meinem Treeview noch die Ids als Objekt mitgeben. Diese sollen rechts neben dem jeweiligen Text stehen und nicht sichtbar sein.
Wie kann man das realisieren? Freue mich über jeden Vorschlag.
Vielen Dank im Voraus.
Kuba
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: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106:
| function FuelleTreeView ( ADODataSet1 : TADODataSet; var treeView : TTreeView; var Sender : TObject):boolean;
var y, x, i, lLevel, j, k : Integer; TreeNode, TreeNode1 : TTreeNode; TreeStringParents, DBString : String;
kh_i : integer;
test : integer;
begin result := true; try x := ADODataSet1.FieldCount; y := ADODataSet1.RecordCount;
test := 2;
FreeAndNil(TreeNode); TreeView.Items.Clear; ADODataSet1.First; treeNode := TreeView.Items.AddChild(nil,ADODataSet1.Fields[lLevel].Value);
for i:= 0 to y - 1 do begin
for lLevel :=0 to x-1 do begin dbString := ''; TreeStringParents := '';
if TreeNode.level < x-1 then begin if treeNode.HasChildren = false then begin treeNode := TreeView.Items.AddChild(TreeNode,ADODataSet1.Fields[TreeNode.level+1].Value);
if TreeNode.level = x-1 then begin break; end else begin continue; end; end; end;
for j:= 0 to lLevel do begin TreeNode1 := TreeNode; for k:= 1 to TreeNode.Level-j do begin TreeNode1 := TreeNode1.parent; end; TreeStringParents := TreeStringParents + TreeNode1.Text; end;
for j:= 0 to lLevel do begin dbString := dbString + ADODataSet1.Fields[j].Value; end;
if TreeStringParents = dbString then begin TreeNode := TreeNode.GetNext; while TreeNode.getNextSibling <> nil do begin TreeNode := TreeNode.getNextSibling; end; end else begin TreeNode := TreeView.Items.Add(TreeNode,ADODataSet1.Fields[TreeNode.level].Value); end; end; TreeNode1 := TreeNode; for k:= 0 to TreeNode.Level-1 do begin TreeNode1 := TreeNode1.Parent; end; TreeNode := Treenode1; ADODataSet1.Next; end; AdoDataset1.Close;
except result := false; end;
end; |