powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / with и без with
18 сообщений из 68, страница 3 из 3
with и без with
    #39916141
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
То есть, прежний паскаль-код компилироваться не будет?


Почему не будет? Прежний код будет работать как и прежде. Но если задан алиас, то работать только через алиас.
А если
Код: pascal
1.
2.
3.
4.
with a as b, c do begin


end


?
...
Рейтинг: 0 / 0
with и без with
    #39916142
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
DmSer
пропущено...


Почему не будет? Прежний код будет работать как и прежде. Но если задан алиас, то работать только через алиас.

А если
Код: pascal
1.
2.
3.
4.
with a as b, c do begin


end


?


Значит обращаться можно будет:
1. К переменным a, b, c
2. К внутренностям c.
Обращение к внутренностям a возможно только через указание a или алиаса b.
...
Рейтинг: 0 / 0
with и без with
    #39916143
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
DmSer,

В таких изменениях смысла нет.


Почему?
...
Рейтинг: 0 / 0
with и без with
    #39916145
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
ёёёёё
пропущено...

А если
Код: pascal
1.
2.
3.
4.
with a as b, c do begin


end



?


Значит обращаться можно будет:
1. К переменным a, b, c
2. К внутренностям c.
Обращение к внутренностям a возможно только через указание a или алиаса b.

О чем я о сказал: 22062685
...
Рейтинг: 0 / 0
with и без with
    #39916147
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрен на шило ...
...
Рейтинг: 0 / 0
with и без with
    #39916150
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нынче можно и так извратиться.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
type
  TMyRec = record
    A : integer;
    B : integer;
  end;
  PMyRec = ^TMyRec;
var
  Arr : array of TMyRec;
begin
  SetLength(Arr,10);

  begin var R: PMyRec := @Arr[1];
    R.A:=1;
    R.B:=2;
  end;
end.
...
Рейтинг: 0 / 0
with и без with
    #39916151
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Почему?

Потому что нет смысла вводить новую сущность, если она не избавляет от старых проблем. Тут нужно, либо полностью отказываться от with, чего не хотелось бы, либо делать псевдонимы безальтернативными.
...
Рейтинг: 0 / 0
with и без with
    #39916158
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
northener,

Код: pascal
1.
2.
ABmp.Width:=Self.Width;
ABmp.Height:=Self.Height;


И короче и надежней.

В таком простом случае да. И я тут скорее всего так и написал бы (особенно учитывая старые сложности с просмотром в отладчике значений). Но если полей объекта/записи несколько больше чем два, то с with всё-таки короче а порой и наглядней как заметил DmSer .
...
Рейтинг: 0 / 0
with и без with
    #39916160
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WITH - такая же неотъемная и полезная часть языка, как и READLN/WRITELN.
...
Рейтинг: 0 / 0
with и без with
    #39916177
Sinemurius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх не сталкивались Вы с тем, что может навсегда привить стойкое отвращение к конструкциям типа with.
Представьте себе старинный, унаследованный код, процедура длиной около 5000 строк, в процедуре три вложенных цикла и два вложенных with....
...
Рейтинг: 0 / 0
with и без with
    #39916178
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sinemurius
в процедуре три вложенных цикла и два вложенных with....

Мелочи какие...
...
Рейтинг: 0 / 0
with и без with
    #39916250
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитывая уже добавленные инлайн переменные, максимум, что они могут сделать, это

Код: pascal
1.
2.
with var a := some.long.path1, b := some.long.path2 do
  a.foo := b.bar



остальные варианты конструкций вряд ли будут вводить
...
Рейтинг: 0 / 0
with и без with
    #39916268
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sinemurius
Эх не сталкивались Вы с тем, что может навсегда привить стойкое отвращение к конструкциям типа with.
Представьте себе старинный, унаследованный код, процедура длиной около 5000 строк, в процедуре три вложенных цикла и два вложенных with....

Вообще-то процедура в 5000 строк и без with может привить стойкое отвращение к чему угодно. :)
...
Рейтинг: 0 / 0
with и без with
    #39916275
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
DmSer
пропущено...


Значит обращаться можно будет:
1. К переменным a, b, c
2. К внутренностям c.
Обращение к внутренностям a возможно только через указание a или алиаса b.

О чем я о сказал: 22062685


Для варианта без алиаса можно выводить предупреждение "deprecated".
...
Рейтинг: 0 / 0
with и без with
    #39916504
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sinemurius,
да ничего такого. главное каши в названиях не делать.
...
Рейтинг: 0 / 0
with и без with
    #39916529
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2
Учитывая уже добавленные инлайн переменные, максимум, что они могут сделать, это

Код: pascal
1.
2.
with var a := some.long.path1, b := some.long.path2 do
  a.foo := b.bar



остальные варианты конструкций вряд ли будут вводить

Нормальный вариант!
...
Рейтинг: 0 / 0
with и без with
    #39916533
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для классов это и так работает. достаточно заменить with на begin.

Проблема с рекордами.
...
Рейтинг: 0 / 0
with и без with
    #39916600
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon
Sinemurius,
да ничего такого. главное каши в названиях не делать.

Значит не сталкивались. Скорее всего :)
Имхо такую простыню нужно либо сразу переделать, либо сразу отказаться от её поддержки.
...
Рейтинг: 0 / 0
18 сообщений из 68, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / with и без with
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]