Re: не визуальное использование TCustomTreeView
Здравствуйте, Serger.
Tuesday, October 4, 2005, 5:05:49 AM, you wrote:
S> Здравствуйте, Почтовый форум по программированию,
S> Более глобально хотелось бы иметь нормальный класс для работы с
S> деревьями.
S> В Delphi вроде только TCustomTreeView имеется - других не знаю. (
Несовсем понял насчет "других" - а TTreeView? Если нужен именно
невизуальный класс типа "дерева", то скройте компонент и все дела. Или
породите от TCustomTreeView свой компонент, хотя и он будет
визуальным.
S> Сам TCustomTreeView - это, как я понял лишь контейнер.
S> Отсюда следует, что он в принципе не нужен.
Это абстрактный класс, правильнее сказать, от которого происходят
другие "деревянные" классы. И для них он нужен, как воздух.:)
S> Используем TTreeNodes:
S> tree := TTreeNodes.Create(nil);
S> tree.GetFirstNode; // Тут вылетает Access Violation
S> ..беда!!!
S> т.е. без TCustomTreeView никуда!!! (
Еще бы - ветку дерева нужно к дереву лепить, а не к nil.
S> Делаю так..
S> treeView := TCustomTreeView.CreateParented((AOwner as TForm).Handle);
S> tree := TTreeNodes.Create(treeView);
S> убиваю:
S> treeView.Free; // Тут я надеюсь, что tree потом тож убъётся(вроде логично)
Сильно наворочено! Сделайте проще, как я говорил - или воспользуйтесь
TTreeView, или создайте свою структуру данных, основанную на бинарных
деревьях (без всяких классов).
S> Вот такой изврат!..
S> Отсюда выводы..
S> Мож я извращенец или мазохист?..
Чё-то выводы какие-то....-)))))) Впрочем, если это о программинге, то
мы все тут такие.-))))))))
S> ps:
S> 1. TCustomTreeView.Create(AOwner as TForm) тоже так же Access violation!
Да, ведь это абстрактный класс.