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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2011, 19:37   #1
Reqq
 
Регистрация: 21.09.2011
Сообщений: 7
По умолчанию Конструкция TTreeNode.Data

Столкнулся с примером следующего содержания, код не полный общий смысл таков что мы записываем характеристики узлов из editov в структуру оттуда в NewNode.Data.
Код:
type
  PNodeOptions=^NodeOptions;
 NodeOptions = record
      Name:string[255];
      Surname:string[255];
      Address:string[255];
      Email:string[255];
    end;

var
  NodeName:string;
  NodeData:PNodeOptions;
  NewNode:TTreeNode;
Begin
  NodeData:=new (PNodeOptions);
  NewNode.Data:=NodeData;// Вот собственно корень вех зол. Что это за свойство объекта TTreeNode в которое можно записать структуру. Что туда вообще можно     записывать? 

Последний раз редактировалось Reqq; 24.09.2011 в 19:40.
Reqq вне форума Ответить с цитированием
Старый 24.09.2011, 20:29   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А тут структура и не записывается, а записывается указатель на структуру в соответствии с типом Data - Pointer
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 24.09.2011 в 20:41.
Аватар вне форума Ответить с цитированием
Старый 24.09.2011, 20:32   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
type
  PNodeOptions = ^NodeOptions;
  NodeOptions = record
    Name: string[255];
    Surname: string[255];
    Address: string[255];
    Email: string[255];
end;
var
  NodeName: string;
  NodeData: PNodeOptions;
  NewNode: TTreeNode;
begin
 New(NodeData);
  try
 NewNode.Data := NodeData;
  finally
 Dispose(NodeData);
  end;
end;
В TTreeNode свойство Data, типа Pointer. Он указатель, может принимать любое значение, т.к. он указатель. Подробности | TTreeNode.Data
Alter вне форума Ответить с цитированием
Старый 24.09.2011, 20:41   #4
Reqq
 
Регистрация: 21.09.2011
Сообщений: 7
По умолчанию

А в NewNode.Data можно записать только указатель?
Reqq вне форума Ответить с цитированием
Старый 24.09.2011, 20:45   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ссылку на любой объект, а так же TreeNode.Data:=Pointer(100) - читать Integer(TreeNode.Data). Вместо 100 может быть любая переменная типа Integer или совместимого
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.09.2011, 20:50   #6
Reqq
 
Регистрация: 21.09.2011
Сообщений: 7
По умолчанию

TreeNode.Data:=Pointer(100);
a:=Integer(TreeNode.Data);
При такой конструкции a будет равно 100 ?
Reqq вне форума Ответить с цитированием
Старый 24.09.2011, 20:52   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Reqq Посмотреть сообщение
TreeNode.Data:=Pointer(100);
a:=Integer(TreeNode.Data);
При такой конструкции a будет равно 100 ?
Об этом же и речь
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.09.2011, 20:56   #8
Reqq
 
Регистрация: 21.09.2011
Сообщений: 7
По умолчанию

Спасибо, просветил ))
Reqq вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TTreeView и динамическое создание TTreeNode Dogmat C++ Builder 0 27.06.2011 17:27
Undeclared identifier: 'TTreeView'('ttreenode') boshki Помощь студентам 9 12.05.2011 18:27
Конструкция if GBAXA Общие вопросы Delphi 5 04.08.2010 15:12
Конструкция try..except anGeee Общие вопросы Delphi 2 21.05.2009 11:34
TTreeNode GAGARIN-NEW Помощь студентам 2 11.02.2008 15:13