Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TTreeView.AddNode - непонятное поведение, Выдает Runtime ошибку при вызове 
:(
    Опции темы
Ibragim
Дата 30.9.2004, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Помогите плз, кому не в лом.

var
x: TTreeNode;
begin
x := TTreeNode.Create(nil);
MyTreeView.Items.AddNode(x,nil,'My node',nil,naAdd); // Runtime error!


Причем специфика такова, что MyTreeView.Items.Add я воспользоваться не могу - нужно вставить именно готовую, созданную раньше TreeNode

PM MAIL   Вверх
<Spawn>
Дата 30.9.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



При создании ветки необходимо в конструктор передать экземпляр TTreeNodes, т.е.:

Код
TreeView1.Items.AddNode(TTreeNode.Create(TreeView1.Items), nil, 'test', nil, naAdd);



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Ibragim
Дата 30.9.2004, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Спасибо, помогло. А теперь усложняем вопрос: Если у меня не объект класса TTreeNode, а объект класса
TMyTreeNode = Class (TTreeNode);
Какой формат записи Create, чтобы вызвался конструктор предка. Пока стоит так:

constructor TMyTreeNode.Create(Items: TTreeNodes);
begin
Self := TMyTreeNode(TTreeNode.Create(Items));
<...>
end

после такого создания все равно
TreeView1.Items.AddNode(TMyTreeNode.Create(TreeView1.Items),nil,'test',nil,naAdd); // runtime error

Здесь могете клянуть что не так? smile.gif
PM MAIL   Вверх
<Spawn>
Дата 30.9.2004, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Код
constructor TMyTreeNode.Create(Items: TTreeNodes);
begin
   inherited Create(Items);
end


Только зачем тебе создавать свой TTreeNode? Если тебе нужно с каждым итемом дерева ассоциировать какие либо данные, то можешь использовать свойство Data, имеющееся у каждого итема.

Это сообщение отредактировал(а) <Spawn> - 30.9.2004, 14:53


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Ibragim
Дата 30.9.2004, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Мне не данные нужно ассоциировать - поведение. То есть при дабл-клике делать одно (причем в зависимости от реальной ноды) и т.д., при потере фокуса - другое. И там не один сласс наследован, а целая иерархия, классы которой разнятся немного поведением.
Кстати вопрос исчерпан - все заработало. Большое спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.