Ключевое слово deprecated

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Climber
постоялец
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Ключевое слово deprecated

Сообщение Climber »

Что оно означает? Сегодня увидел первый раз, и в книжках про Delphi (даже в хороших) не встречал... Например:

Код: Выделить всё

unit Graphics;
...
  clDark = TColor(-5) deprecated;
  clMid = TColor(-6) deprecated;
  clText = TColor(-7) deprecated;
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

При использовании где-либо помеченного идентификатора будет выдаваться предупреждение.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Climber
deprecated примерно обозначает как "не рекоммендовано к использованию". Причины могут быть разные, например потому что данная штука противоречит синтаксису чего-то более нового или вообще может быть убрано, потому что устарело.
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Сообщение Tango »

Что бы не создавать тем.
А что тогда использовать в TProcess, если на CommandLine пишет deprecated?
Покопал исходники, по видимому, ничего, как раз лучше её и использовать.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

Tango писал(а):Что бы не создавать тем.
А что тогда использовать в TProcess, если на CommandLine пишет deprecated?
Покопал исходники, по видимому, ничего, как раз лучше её и использовать.


Нужно использовать Executable и Parameters, в документации описано.
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

А вот было бы нефигово вместе с предупреждением, давать ссылку КУДА КОПАТЬ!!!! :mrgreen: А то времени на поиск маслозаменителя уходит уйма!!!!!
Вот, например, на

Код: Выделить всё

DefaultFormatSettings.DecimalSeparator := '.';

Я замены так и не нашел. Забил :(
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

vada писал(а):

Код: Выделить всё

DefaultFormatSettings.DecimalSeparator := '.';

Я замены так и не нашел. Забил :(


Как раз через DefaultFormatSettings — не устаревший вариант использования.

Устаревший — использовать глобальную переменную DecimalSeparator.
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

vada
Это всё описывается к примечаниях к выпускам.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Максим писал(а):Это всё описывается к примечаниях к выпускам.


Т.е. чтобы узнать что использовать вместо помеченного как deprecated, надо каким-то образом узнать в каком выпуске оно было помечено и читать его примечания?
Обычно просто в комментариях там же пишут "deprecated, use xxx". Либо более развернуто.
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Mirage писал(а):Т.е. чтобы узнать что использовать вместо помеченного как deprecated, надо каким-то образом узнать в каком выпуске оно было помечено и читать его примечания?

Надо читать примечания ко всем выпускам свежее того, с которого происходит обновление. Там, помимо deprecated, обычно пишут много интересного.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Максим писал(а):Надо читать примечания ко всем выпускам свежее того, с которого происходит обновление. Там, помимо deprecated, обычно пишут много интересного.


До замены deprecated руки доходят обычно не при обновлении с выпуска на выпуск, а в произвольный момент.
Для того, собственно, оно и помечается deprecated, а не выпиливается сразу, чтобы было время.
Так что лучше таки на месте в каментах писать.
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Как раз через DefaultFormatSettings — не устаревший вариант использования.
Устаревший — использовать глобальную переменную DecimalSeparator.


Возможно что и нашел. Помню только что рыл информацию по этому месту очень долго. Непродуктивно долго. Это очень неудобно. Действительно, хоть в коментах рядом с deprecated написали бы какой заменой пользоваться. Лопатить гору примечаний к выпускам не вариант. У меня проект уже три года как в эксплуатации. Естественно, за выпусками не слежу. У меня другой проект и на другом языке. Баг обнаружился. Я его поправил и получил уведомление что у меня где-то там какой-то метод deprecated. Чтоб привести все должный порядок надо потратить не один день. Это полная фигня. И так есть чем заняться.
tema
постоялец
Сообщения: 376
Зарегистрирован: 24.03.2011 19:19:27

Сообщение tema »

Tango писал(а):Что бы не создавать тем.
А что тогда использовать в TProcess, если на CommandLine пишет deprecated?
Покопал исходники, по видимому, ничего, как раз лучше её и использовать.

Я заменил

Код: Выделить всё

  AProcess.CommandLine:='ip a';

на

Код: Выделить всё

  AProcess.Executable := 'ip';
  AProcess.Parameters.Add('a');

Больше не ругается :D
Ответить