Показать сообщение отдельно
  #2  
Старый 04.08.2024, 08:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вспоминаем, что на самом деле все объекты Делфи являются указателями.
Соответсвенно, присваивание переменной tmp некоторого объекта TreeView на самом деле просто указывает на один и тот же объект. Как, например, у тебя есть банка с водой. Если ты сделаешь еще одну дырку в стенке банки, то ты получишь доступ ровно к той же воде. Здесь сам объект - это вода, в дырки в банке - как раз указатели.

Код:
1
2
3
4
5
6
7
8
9
10
11
12
type
  TForm1 = class(TForm)
    Label1 : TLabel;
  end;
...
procedure TForm1.Button1Click(Sender : TObject);
var
  tmp : TLabel;
begin
  tmp := Label1;
  tmp.Caption := 'Изменено через tmp';
end;

В примере мы tmp присваиваем значение поля Label1 и меняем знаяение свойства объекта через эту переменую. Как понятно, и в tmp и в Label1 находится одно и то же значение - адрес в памяти, по которому и размещен сам объект.
Ответить с цитированием