![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
with
paveltersh © (2007-09-11 16:44:00)Когда и зачем with используют так:
with Button1, Edit1, Edit2 do
begin
...
Это для примера, мой код. Но зачем with предполагает наличия нескольких переменных? И как это можно использовать?
Приведите пожалуйста пару примеров.
Сергей М. (2007-09-11 16:53:00) [21]
> какова причина их появления?
Причина проста - компилятор не може понять, что конкретно от него требуют в WITH-блоке (неоднозначность трактовки обращений к одноименным св-вам/методам разных объектов), и трактует эти обращения "по-своему"
{RASkov} (2007-09-11 16:53:00) [22]> [3] paveltersh (11.09.07 16:49)
> Вот как раз глюки и интересуют, какова причина их появления?
> И где не стоит это использовать а где стоит?
Глюков там нет, глюки у автора при написании и не понимании сего механизма :)
Так же там учитывается порядокрасположения идентификаторов.... примерно как в uses...
{RASkov} (2007-09-11 16:51:00) [23]Примерно так:
with Canvas, Canvas.Font do begin
Color:=clRed; //Цвет фонта
Pen.Color:=clBlue; //цвет карандаша
Rectangle(); // Канвас.Ректангл
TextOut(); // Канвас.ТекстОут
end;
А вообще это путаница если ты не понимаешь сути with.... и по первой использовать такие конструкции опасно...
Ega23 (2007-09-11 16:49:00) [24]Я, честно говоря, всего пару раз таким пользовался.
With dmMain, adsSomething doгде
begin
end;dmMain : TDataModule; adsSomething : TADODataSet.
paveltersh (2007-09-11 16:49:00) [25]Вот как раз глюки и интересуют, какова причина их появления? И где не стоит это использовать а где стоит?
DVM (2007-09-11 16:47:00) [26]Но с этим надо быть аккуратным - чревато глюками при неверном применении.
DVM (2007-09-11 16:46:00) [27]
with Button1, Edit1 do
begin
Text := Caption;
end;