uses ComCtrls, ImgList
// Der ImageList müssen Bitmaps hinzugefügt werden
type
TShowType = (online, away, dnd);
type
TUser = packed record
Username: string[255];
ID: string[255];
OnlineType: TShowType;
Groups: TStringList;
end;
PUser = ^TUser;
TUsers = array of PUser;
//
procedure TForm1.Button1Click(Sender: TObject);
var
Users : TUsers;
i : Integer;
j : Integer;
cnt : Integer;
RootNode : TTreeNode;
ChildNode : TTreeNode;
begin
setlength(Users, 3);
new(Users[0]);
Users[0]^.Username := 'User1';
Users[0]^.ID := '123';
Users[0]^.OnlineType := online;
Users[0]^.Groups := TStringlist.Create;
Users[0]^.Groups.Add('Name');
Users[0]^.Groups.Add('Vorname');
new(Users[1]);
Users[1]^.Username := 'User2';
Users[1]^.ID := '456';
Users[1]^.OnlineType := away;
Users[1]^.Groups := TStringlist.Create;
Users[1]^.Groups.Add('Name');
Users[1]^.Groups.Add('Vorname');
new(Users[2]);
Users[2]^.Username := 'User3';
Users[2]^.ID := '789';
Users[2]^.OnlineType := dnd;
Users[2]^.Groups := TStringlist.Create;
Users[2]^.Groups.Add('Name');
Users[2]^.Groups.Add('Vorname');
Users[2]^.Groups.Add('Addresse');
for i := 0 to length(Users) - 1 do
begin
RootNode := Treeview1.Items.AddObject(nil, PUser(Users[i])^.Username, TObject(Users[i]));
if PUser(Users[i])^.OnlineType = online then
begin
RootNode.ImageIndex := 0;
RootNode.SelectedIndex := 0;
end
else if PUser(Users[i])^.OnlineType = away then
begin
RootNode.ImageIndex := 1;
RootNode.SelectedIndex := 1;
end
else if PUser(Users[i])^.OnlineType = dnd then
begin
RootNode.ImageIndex := 2;
RootNode.SelectedIndex := 2;
end;
cnt := PUser(Users[i])^.Groups.Count;
for j := 0 to cnt - 1 do
begin
ChildNode := Treeview1.Items.AddChild(RootNode, PUser(Users[i])^.Groups.Strings[j]);
ChildNode.ImageIndex := 3;
ChildNode.SelectedIndex := 3;
end;
end;
end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
ID : string;
begin
if Assigned(PUser(Treeview1.Selected.Data)) then
ID := PUser(Treeview1.Selected.Data)^.ID;
Label1.Caption := ID;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer;
begin
if Treeview1.Items.Count > 0 then
for i := Treeview1.Items.Count - 1 downto 0 do
begin
if Assigned(PUser(Treeview1.Items[i].Data)) then
begin
FreeAndNil(PUser(Treeview1.Items[i].Data).Groups);
Dispose(PUser(Treeview1.Items[i].Data));
end;
end;
Treeview1.Items.Clear;
end;

Create TreeView Nodes
Abonnieren
Posts (Atom)
Beliebte Posts
-
Windows Key Sniffer 0.82 - Update 08/2024 Der Windows Key Sniffer hat mir im Laufe der Zeit viel Arbeit erspart und unterstützt, viele Wi...
-
Network Source Code Update Source Code Network Update : https://asciigen.blogspot.com/p/network.html Send Message 1.0 Source Server Client ...
-
Windows Defender Bypass Version 0.75 - Update 11/2024 Den Windows 10-eigenen Virenschutz Defender kann man auf mehreren Wegen abschalt...
-
ASCii GIF Animator Update Version 0.68 (32 bit) - 11/2024 Bei dieser überarbeiteten Version ist die Kompatibilität zu den verschiedenen...
-
MD5 Hacker v.0.26 - Update 08.2024 MD5 Hashs sollten eigentlich nicht entschlüsselt werden können. Jedoch gibt es Tools, mit welchen auch ...
-
Host Editor Version 0.65 - Update 01/2025 Hosts File Editor allows for the easy editing of host files and backup creation. Create your ...
-
Dir Sniffer Version 0.11 - Update 02/2025 Dir Sniffer ist ein kleines aber nützliches Tool um herauszufinden, was ihr Programm auf ihrem...
-
Oldskool Font Generator v.0.29 - Update 11/2023 Das Tool stell 508 Bitmap Fonts zu Verfügung. Eigene Fonts können integriert werden, sie...
-
Hard Crypter 0.19 - Update 12/2023 Mit diesem Tool können Sie jede beliebige Datei auf dem Windows-System verschlüsseln. Die Byte-Erse...
Keine Kommentare:
Kommentar veröffentlichen