Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Все это я делал раньше. Я не могу вам все это показать на развернутом примере, но я дам вам идею как сделать это. Вы должны иметь таблицу, осуществляющую взаимоотношение между людьми. Если на Peter работают Jane и Simon, вы должны иметь таблицу (RELATION) с этими двумя записями.
Master Slave ------- имена полей Peter Jane Peter Simon
Если George и Elisa работают на Jane, то таблица становится такой:
Master Slave ------- имена полей Peter Jane Peter Simon Jane George Jane Elisa
и так далее.
Если в таблице RELATION необходимо создать дерево, начинающееся на Peter, то нужно добавить к дереву главный узел (запись), где Master = Peter. Затем каждая дочерняя запись располагается ниже записи Master = Peter. После добавления дочерней записи вы сразу увидите, если ребенок имеет собственного ребенка. Ребенок становится теперь, вероятно, отцом, поэтому вы должны позиционировать таблицу RELATION к первой записи, где Master = child, и так далее, рекурсивно. Такой способ гарантирует построение правильного дерева.
Пример:
AddFather('Peter')
AddChild('Peter', 1)
procedure AddFather(Name: string
)
begin
Tree.Add(Name);
end
;
procedure
AddChildr(Name: string
, Index: Integer)
begin
Relation.FindKey([Name])
while
RelationMaster.AsString = Name do
begin
Tree.AddChild(Index, RelationSlave.AsString);
AddChild(RelationSlave.AsString, Tree.ItemsCount);
Relation.Next;
end
;
end
;
По-моему, ошибок нет.