Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Указатели и классовые переменные   Найти похожие ветки 

 
LordOfRock ©   (2006-02-14 13:39) [0]

За неимением инструкции по делфи, задаю такой дебильный вопрос.

Есть класс. Добустим TMyClass

Создаю переменную классового типа: MyClass : TMyClass и делаю ей Create

Потом добавляю эту переменную в несколько экземпляров TList"a, допустим так:

var
 List1 : Tlist;
 List2 : TList;
begin
 List1.Create;
 List2.Create;
 List1.Add(MyClass);
 List2.Add(MyClass);
end;


При получении из одного Листа классовой переменной,затем изменения некоторых свойств: эти изменения отразятся сразу во всех Листах, или прописывать надо будет?


 
begin...end ©   (2006-02-14 13:55) [1]

> LordOfRock ©   (14.02.06 13:39)

> Создаю переменную классового типа: MyClass : TMyClass и
> делаю ей Create...

...и после этого переменная MyClass начинает указывать на некоторую структуру в памяти -- экземпляр класса.

> Потом добавляю эту переменную в несколько экземпляров TList"a...

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

> При получении из одного Листа классовой переменной,затем
> изменения некоторых свойств...

...будет изменён экземпляр класса, на который она указывает. При этом элемент второго списка продолжает указывать на тот же самый экземпляр.

> ...эти изменения отразятся сразу во всех Листах?

В самих "листах" никаких изменений не будет -- в них, как и ранее, находятся указатели, значение которых (адрес экземпляра) не поменялось. А вот сам экземпляр, возможно, поменялся, и указатели из обоих списков теперь содержат адрес уже изменённого экземпляра.

> List1.Create;

List1 := TList.Create. Иначе будет не создание, а переинициализация. И с любым другим классом -- так же.


 
begin...end ©   (2006-02-14 14:04) [2]

> При этом элемент второго списка продолжает указывать на
> тот же самый экземпляр.

Чтобы не было неясностей, поясню: на тот же самый экземпляр, на который указывает элемент первого списка.


 
LordOfRock ©   (2006-02-14 14:37) [3]

begin...end ©   (14.02.06 13:55) [1]
begin...end ©   (14.02.06 14:04) [2]
Огромное спасибо за разъяснение. Собственно, на подсознательном уровне так и думал, но теперь вголове полная ясность.



Страницы: 1 вся ветка

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
2-1140315641
49 Cent
2006-02-19 05:20
2006.03.05
Сумма значений в отфильтрованных строках


2-1139924103
VitV
2006-02-14 16:35
2006.03.05
Delphi+Немецкий


1-1138967347
Darvin
2006-02-03 14:49
2006.03.05
Запретить закрытие не основной формы по Alt-F4


15-1139650945
Yanis
2006-02-11 12:42
2006.03.05
Вот это война :)


2-1139992967
MIXER
2006-02-15 11:42
2006.03.05
печать формы