Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

аналог TTreeNodes [D6, Win2k]


irq ©   (2004-08-18 16:36:00) 

Здравствуйте! Нужен аналог TTreeNodes без визуалки (сам по себе, без TTreeView). Посоветуйте, где взять. Спасибо


jack128   (2004-08-18 19:01:00) [1]

вот на это у меня ушло 7,5 минут. С обдумыванием. Но без тестирования ;-)
type
 TNode = class
 private
   FChildren: TList;
   FParent: TNode;
   function GetChild(index: Integer): TNode;
   function GetChildCount: Integer;
 public
   constructor Create(AParent: TNode);
   destructor Destroy; override;

   property Parent: TNode read FParent;
   property Children[index: Integer]: TNode read GetChild;
   property ChildCount: Integer read GetChildCount;
 end;

{ TNode }

constructor TNode.Create(AParent: TNode);
begin
 FParent := AParent;
 FChildren := TList.Create;
 if Assigned(FParent) then
   FParent.FChildren.Add(Self);
end;

destructor TNode.Destroy;
var
 i: Integer;
begin
 if Assigned(FParent) then
   FParent.FChildren.Extract(Self);
 for i := ChildCount - 1 downto 0 do
   Children[i].Free;
 FreeAndNil(FChildren);
 inherited;
end;

function TNode.GetChild(index: Integer): TNode;
begin
 Result := TNode(FChildren[index]);
end;

function TNode.GetChildCount: Integer;
begin
 Result := FChildren.Count;
end;


ламер   (2004-08-18 18:48:00) [2]

> Sergey_Masloff   (18.08.04 18:27) [11]
Мужики, не обижайтесь, но за 10 минут не пишется ничего реально работающее. Никогда. Как бы не казалось что это так ;-)

странно. думаю, что описать структуру узла (пользовательские данные и 2 указателя) и написать 3 процедурки (для добавления, удаления и поиска) - как раз 10 минут. не больше.


jack128   (2004-08-18 18:32:00) [3]


> Мужики, не обижайтесь, но за 10 минут не пишется ничего
> реально работающее. Никогда. Как бы не казалось что это
> так ;-)
ну блин, ну не десять, ну 20.. Ладно - 30 минут - чтоб для гарантии :-)


Sergey_Masloff   (2004-08-18 18:28:00) [4]

Или это я такой тормоз ;-)


Sergey_Masloff   (2004-08-18 18:27:00) [5]

jack128 ©   (18.08.04 17:41) [7]
Гаврила ©   (18.08.04 18:21) [10]
>Ну ведь правда за 10 минут пишется
Ну, у русских программистов все за 10 минут пишется. На словах.

Мужики, не обижайтесь, но за 10 минут не пишется ничего реально работающее. Никогда. Как бы не казалось что это так ;-)


Гаврила   (2004-08-18 18:21:00) [6]

Ну ведь правда за 10 минут пишется


irq   (2004-08-18 17:57:00) [7]

TUser:
TTreeNodes требует в качестве Owner'а TTreeView, иначе access violation на каждый чих. Они сильно повязаны друг с другом


TUser   (2004-08-18 17:44:00) [8]

Алголист живет здесь
algolist.manual.ru
а еще находится любым поисковиком на слово 'алгоритмы'. Кажется, он там самый первый.


jack128   (2004-08-18 17:41:00) [9]

Ах да.. Адрес Яндекса помню - www.yandex.ru ;-)


jack128   (2004-08-18 17:40:00) [10]

Хотя провел там довольно много времени, но адрес сайта так и неудасужелся запомнить.. Каждый раз через Яндекс ищу ;-)


irq   (2004-08-18 17:25:00) [11]

Уважаемый, jack128быстродумающийибыстропишушщий, ссылочку на алголист дайте, пожалуйста. Спасибо.


TUser   (2004-08-18 17:20:00) [12]

TTreeNode.Create


jack128   (2004-08-18 16:48:00) [13]

А вообще простейшее дерво пишется да десять минут..


jack128   (2004-08-18 16:47:00) [14]

На алголист, я так понимаю, тебе дорога.. Раздел "Структуры данных"


Семен Сорокин   (2004-08-18 16:43:00) [15]

TList?


Наверх

Титульная страница Поиск, карта сайта Написать письмо