Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 20:52   #1
anGeee
Пользователь
 
Аватар для anGeee
 
Регистрация: 18.11.2008
Сообщений: 94
По умолчанию Проблема с AddChildObject.

В программе динамически создаются новые элементы в TreeView. К каждому из узлов я привязываю указатель на объект :
Код:
var
   ObjPtr : array[0..9] of PChar;
 {...}  
  for i := 0 to ListBox.Items.Count - 1 do
    begin
      ObjPtr[i] := PChar(ListBox.Items[i]);
      TreeView.Items.AddChildObject(node,ListBox.Items[i],ObjPtr[i]);
    end;
  {...}
Затем проверяю , что получилось
Код:
procedure TForm1.TreeViewChanging(Sender: TObject; Node: TTreeNode;
  var AllowChange: Boolean);
begin
  if node.data <> nil then
    Application.MessageBox(node.data,'...',0);
end;
Однако, при нажатии появляется одно и то же сообщение, то есть один объект для всех узлов.. Причем тот который создается последним..
anGeee вне форума Ответить с цитированием
Старый 19.11.2009, 01:43   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А что вы ожидали?
Что-то я не наблюдаю смены нодов в процессе присвоения объектов...
Вы зачем-то устроили цикл перебора итемсов листбокса для одной и той же ноды.
А это значит, что объекту ноды будет в конце концов присвоено именно последнее значение...
mihali4 вне форума Ответить с цитированием
Старый 19.11.2009, 02:07   #3
anGeee
Пользователь
 
Аватар для anGeee
 
Регистрация: 18.11.2008
Сообщений: 94
По умолчанию

Ну я руководствовался тем, что нод в данной ситуации просто указатель на родителя.. То есть, я в цикле создавал потомков для нода, а функция AddChildObject возвращает указатель, которому и будет присвоен объект.. Или мои рассуждения не верны ? ..
anGeee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37