Методы Assign и AssignTo написаны для типов TStrings и TListItemsDelphi , Компоненты и Классы , СпискиМетоды Assign и AssignTo написаны для типов TStrings и TListItems
Оформил: 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 прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |