Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.016 c
3-21449
vladimir_12
2002-10-21 12:23
2002.11.07
Поиск в Dataset или DBGrid


14-21771
AL2002
2002-10-18 13:04
2002.11.07
Дёргается веко


1-21589
GIL
2002-10-29 23:16
2002.11.07
Создание ярлыков


7-21842
Slatazan
2002-09-01 05:51
2002.11.07
Single format


14-21792
Beginner-Designer
2002-10-18 21:20
2002.11.07
Вопрос к тем, кто знает и Delphi и Visual C++