Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизМожно ли использовать with Найти похожие ветки
← →
}|{yk © (2004-07-04 19:59) [0]внутри другого with ? Т.е. допускается ли вложеность with ?
← →
Vlad © (2004-07-04 20:08) [1]
> }|{yk © (04.07.04 19:59)
Лучшее средство запутать компилятор.
← →
GuAV © (2004-07-04 20:14) [2]
> Можно ли использовать with
>
> }|{yk © (04.07.04 19:59)
> внутри другого with ?
Можно, если осторожно.
← →
Anatoly Podgoretsky © (2004-07-04 20:14) [3]Можно
← →
jack128 © (2004-07-04 20:20) [4]
> Лучшее средство запутать компилятор.
себя - может быть, но не компилятор ;-)
← →
Ihor Osov'yak © (2004-07-04 21:48) [5]2 [4] jack128 © (04.07.04 20:20)
> себя - может быть, но не компилятор ;-)
А себя, то почему?
Ps - в особо клиничных случаях и при наличия бардака в коде - Ctrl+левый лап мыши - внесут ясность.
Зы2. Я не говорил, что пользоваение "Ctrl+левый лап мыши" подразумевает наличие бардака в коде.
← →
Vlad © (2004-07-04 22:20) [6]Ну естественно, компилятор отработает четко, но общая путаница все равно может возникнуть, а каждый раз делать >"Ctrl+левый лап мыши" извините, задолбаться можно. Поэтому лично я стараюсь избегать вложенных with. Уж если делать, то нагляднее будет так: with a,b do ... хотя тоже не люблю.
← →
jack128 © (2004-07-04 22:37) [7]
> А себя, то почему?
ну.. Кто поймет, что у человека в голове.. А вот компилятор - его запутать в принципе невозможно.
> в особо клиничных случаях и при наличия бардака в коде -
> Ctrl+левый лап мыши - внесут ясность.
это годится только если имеются одноименные свойства/методы в различных классах.
А вот в таких случаях помогут тотлько ясные мозги:
with Form1 do
begin
.... // тут много кода
with Button do
begin
... // тут много кода
Top := intSameValue; // к чему относится Top?
end;
....
end;
← →
Ihor Osov'yak © (2004-07-04 23:21) [8]2 [7] jack128 © (04.07.04 22:37)
Имхо, код в таком стиле и ясные мозги (у автора кода) - вещи немного несовметимые..
А относительно "к чему относится Top?" - к ближайшему "подходящему" with, то есть в даном случае к "with Button do" (если Button - экземпляр TButton)..
← →
GuAV © (2004-07-05 00:00) [9]jack128 © (04.07.04 22:37) [7]
И без вложенных with можно налажать и одним with.
Например заполняя виндозные структуры. может быть hInstance<>SysInit.hInstance. это самый частый случай. Еще сегодня с Тэгом запарывался. он-то все равно есть в методе формы, тк. self всегда присоединен.
<off>
Ihor Osov"yak
хотелось бы посмотреть что получилось до среды,
в среду я уезжаю в теплые края...
</off>
← →
TUser © (2004-07-05 02:39) [10]Я использую. Бывают ошибки, но довольно редко. Я бы не сказал, что это особо "глюкородное" место - во многих других случаях вероятность посадить ошибку выше.
← →
GuAV © (2004-07-05 03:20) [11]
> во многих других случаях вероятность посадить ошибку выше.
и такое часто бывает.
зы - про with уже трепались, не так давно.
← →
Григорьев Антон © (2004-07-05 08:17) [12]Можно даже делать двойной with:
with Form1, Button1 do
Top:=0; // Top относится к Button1
with Button1, Form1 do
Top:=0; // Top относится к Form1
← →
vecna © (2004-07-05 10:16) [13]имхо with чисто на любителя, хотя код более приятный скомпиляется, но реального выигрыша нет. так что если есть сомнения, то ну его (with) нафик.
еще замечал ляпы вроде такого:
if a>b
then
if a > c then
// do something (a>b, a>c)
else
// do something (a<=b)
и человек, написавший это никак не мог понять, почему "do something (a<=b)" никогда не выполнится.
мораль проста: сомневаешься - пиши понятным, однозначным, выражением =)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c