Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Компилятор включает неиспользуемые методы класса


Автор: Gwire 30.1.2018, 15:02
Раньше писал используя D7. Сейчас использую XE7.

Заметил, что среда XE7, после компиляции, проставляет точки напротив строк в функциях которые не участвуют в работе кода.
Например:
Код

type
  TMainForm = class(TForm)
  private
    procedure Proc1;
  protected
    procedure Proc2;
  public
    procedure Proc3;
  end;


В D7 все 3 процедуры пропускаются. А в XE7 процедура Proc3 зачем-то компилируется.

Вопрос:
1) Есть ли в XE7 директива отключающая компиляцию public функций и процедур которые не используются.
2) Знает ли кто-нибудь, это происходит только в Debug или в Release тоже? (Release точки не проставляет).

ПС: Опережая вопрос "Зачем писать, если не используешь?".
Например: класс TList - стандартный. Из всех его public функций используется мной только Add, Remove, Clear, IndexOf, Destroy
Но при этом ExtractItem и SortList тоже компилируются. Ладно TList не большой, а с другими классами не так все "воздушно".

"Кто возьмёт билетов пачку, тот получит водокачку".

Добавлено через 5 минут и 22 секунды
Еще накопал.
Код
program Project1;
begin
end.
размер exe 161.7 Кб
Код
program Project1;
uses System.SysUtils;
begin
end.
размер exe 1.1 Mб
При этом компилируется CompareText. А в точке останова не встает.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)