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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2013, 20:02   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Смущение Обьекты из списка и переменная. Что туда поподает, сам обьект или ссылка на него?

Доброго времени суток!

Вот такое привело меня в замешательство:
Есть некий список объектов(TObjectList) в нем живут TObject и так же объявлен pObject = ^TObject;

На некоторой форме не хочу громоздить:
FactoryList.Factory[Id].List1[X1].Object[X] таки сложные цепи.

Решил по хитрому:
В Var секции объявил:
EditableObject:TObject;

В форму пнул свойство SetObjectID где:
Код:
EditableObject:=FactoryList.Factory[Id].List1[X1].Object[X];
В EditableObject переходит сам объект или только указатель на него?

Может надо бы:
В Var секции объявил:
EditableObjectObject;

В форму пнул свойство SetObjectID где:
Код:
EditableObject:=@FactoryList.Factory[Id].List1[X1].Object[X];


Человек_Борща вне форума Ответить с цитированием
Старый 01.02.2013, 20:48   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Есть некий список объектов(TObjectList) в нем живут TObject
Живут ссылки на TObject, а не объекты. И любое выражение вида xObject:=TObject.Create создает сам объект и в xObject хранится ссылка на объект. Аналогично и свойство такого типа возврвщает ссылку на объект
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.02.2013, 23:25   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
pObject = ^TObject;
Стесняюсь спросить, а это зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.02.2013, 13:06   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Нужно чтобы вытаскивать данные из указателя.
Код:
function TClassesViewFrame.HaveObject(Node: PVirtualNode;
  out Obj: TClassListItem): Boolean;
var
  pData: pClassListItem;
begin
  Result := False;
  Obj := nil;
  if Node = nil then
    Exit;
  pData := Tree.GetNodeData(Node);
  Result := (pData <> nil) and (pData^ is TClassListItem);
  if Result then
    Obj := pData^;
end;
Человек_Борща вне форума Ответить с цитированием
Старый 02.02.2013, 13:36   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что мешает в Data просто присваивать ссылку на объект? ...Data:=x; где x: TClassListItem
и обратно
Код:
if Tree.GetNodeData(Node) is TClassListItem then Obj:=TClassListItem(Tree.GetNodeData(Node)) else Obj:=nil;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется ссылка на обьект BaronVik C# (си шарп) 1 07.11.2011 23:15
При присваивании копируется объект или ссылка на него? KiL0z Общие вопросы Delphi 2 11.06.2011 19:57
что получиться из этого кода? или что мы ищем через него? kroatoani Общие вопросы Delphi 5 23.10.2010 17:18
DLL:переменная-ссылка на компонент формы Саня Общие вопросы Delphi 9 03.08.2007 10:38