Вниз
Скачать: CL | DM;

В чем разница...   Найти похожие ветки 

 
Дмитрий К.К.   (2002-10-26 14:48) [0]

... между строчкой
with TreeView.Items do

и строчкой
with TreeView, Items do

?


 
AngeL B.   (2002-10-26 17:19) [1]

В первом случае ты оказызываешься внутри объекта TreeView.Items и компилятор неявно пытается подставить этот объект перед всеми идентификаторами внутри блока. То есть код оказывается в пространстве имен одного объекта.

Во втором - ты указываешь что ты одновременно хочешь расширить пространство имен на два объекта (можно больше).
При этом подразумевается существование как переменной TreeView, так и переменной Items, причем на одном уровне видимости. Во втором случае Items не внутри TreeView, а отдельная переменная.

Пример для большей ясности.


type
TA = record
_A, _B: Integer;
end;

TB = record
_C, _D: Integer;
end;

...

with A, B do _A := _D;


 
Набережных С.   (2002-10-26 17:44) [2]

В первом варианте в блоке with можно оперировать членами TreeView.Items, во втором - и TreeView, и TreeView.Items. При этом, если имеется некая внешняя переменная Items, то внутри блока with она будет недоступна.


 
Юрий Зотов ©   (2002-10-26 20:49) [3]

> причем на одном уровне видимости

Нет. Не на одном, а начиная с последнего. Сначала - Items, потом - TreeView. Это значит, что если у них есть одноименное свойство или метод, то будет подразумеваться Items, а не TreeView.


> Во втором случае Items не внутри TreeView, а отдельная переменная.

Нет. Будет подразумеваться именно тот Items, который TreeView.Items. Поскольку перед Items уже было with TreeView.



 
AngeL B.   (2002-10-26 22:59) [4]


> 2 Юрий Зотов


После прочтения Object Pascal Reference вынужден признать вашу правоту. :) Они действительно вкладываются друг в друга.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
14-21749
Beginner-Designer
2002-10-18 13:46
2002.11.07
Предложение тем, которые не знают что писать


4-21869
d-coder
2002-09-24 03:08
2002.11.07
Grid index out of range


3-21436
Иван В
2002-10-20 13:13
2002.11.07
Автоинкрементное поле в DBF


1-21465
Kiksss
2002-10-28 09:06
2002.11.07
Как изменить на mbYes и mbNo Yes на


1-21543
and1
2002-10-29 15:43
2002.11.07
Новичку ответье




   Наверх