![]() |
![]() ![]() ![]() ![]() |
|
Методы Assign и AssignTo написаны для типов TStrings и TListItemsDelphi , Компоненты и Классы , Списки
Оформил: DeeCo Автор: Максим Игнатьев Вариант решения : Публикуется только в части предмета задания. Полный вариант проекта - Lists2.zip (6.7K)
procedure TNamedHCollection.AssignTo(Dest: TPersistent);
var
i, c: integer;
TN: TTreeNode;
begin
...
// Заветное решение для дерева.
if Dest is TTreeNodes then
with TTreeNodes(Dest) do
begin
BeginUpdate;
Clear;
for i := 0 to Self.Count - 1 do
begin
TN := AddChild(nil, Items[i].Name);
TN.Assign(Items[i].Items);
end;
EndUpdate;
exit;
end;
if Dest is TTreeNode then
with TTreeNode(Dest) do
begin
for i := 0 to Self.Count - 1 do
begin
TN := Owner.AddChild(TTreeNode(Dest), Items[i].Name);
TN.Assign(Items[i].Items);
end;
exit;
end;
inherited;
end;
procedure TNamedHCollection.Assign(Source: TPersistent);
var
i: integer;
FItem: TNamedHCollectionItem;
TN, NN: TTreeNode;
begin
.....
// Заветное решение для дерева.
if Source is TTreeNodes then
begin
Assign(TTreeNodes(Source).GetFirstNode);
exit;
end;
if Source is TTreeNode then
begin
TN := TTreeNode(Source);
while TN <> nil do
begin
FItem := Self.Add;
FItem.Name := TN.Text;
NN := TN.GetFirstChild;
if Assigned(NN) then
FItem.Items.Assign(NN);
TN := TN.getNextSibling;
end;
exit;
end;
inherited;
end;
Приведенный код является частью класса Метод Метод Вот подробное описание того, что эти методы делают:
Методы также вызывают метод, наследуемый от класса, если тип Цель этих методов seems to be facilitate the transfer of hierarchical data structures (e.g., trees) between different objects. Методы Assign и AssignTo в классе TNamedHCollection реализованы для типов TStrings и TListItems с учетом особенностей работы с деревьями. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||