Da fällt mir spontan eher ein TreeView ein:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
curtn : TTreeNode;
begin
curtn := TreeView1.Items.Add(nil, 'Westeuropa');
curtn := TreeView1.Items.AddChild(curtn, 'Deutschland');
TreeView1.Items.AddChild(curtn, 'NRW');
TreeView1.Items.AddChild(curtn, 'RhPf');
curtn := curtn.Parent;
curtn := TreeView1.Items.AddChild(curtn, 'Frankreich');
TreeView1.Items.AddChild(curtn, 'Provence');
curtn := curtn.Parent;
curtn := TreeView1.Items.Add(nil, 'USA');
curtn := TreeView1.Items.AddChild(curtn, 'Washington');
curtn := curtn.Parent;
curtn := TreeView1.Items.AddChild(curtn, 'New York');
curtn := curtn.Parent;
end;
So ähnlich könntest du aber auch eine eigene Datenstruktur mit Objekten aufbauen, also mit Parents und Childs.