====== Лог компиляции проекта ======
Форма **"Лог компиляции проекта"** открывается из главного меню программы кнопкой **"Лог компиляции проекта"**.\\
Форма отображает список предупреждений, которые выдал компилятор Delphi.\\
Каждому предупреждению сопоставляется программист, который должен будет исправить программу для удаления предупреждения.
{{:pasted:20200418-145931.png}}\\
==== Информационные поля ====
* **Количество записей в логе** - общее количество предупреждений в файле лога компиляции проекта.\\
* **Количество записей в объекте** - количество записей в объекте меньше чем "Количество записей в логе" так, как исключаются записи с неактивными типами предупреждений.\\
* **Проект** - Папка проекта Delphi. Считывается из лога компиляции проекта
* **Файл лога компиляции проекта** - Файл, в который выгружен лог компиляции проекта. Считывается из настройки **BuildLog**.
==== Поля в таблице ====
* **Код** - Код типа предупреждения
* **Описание** - Описание предупреждения
* **Модуль** - наименование файла с предупреждением
* **Строка** - номер строки в модуле, в которой возникло предупреждение.
* **Разработчик** - программист, который вносил изменения. Добавляется из лога изменений модулей
* **E-MAIL** - E-MAIL программиста. Добавляется из лога изменений модулей
==== Кнопки ====
* **Импорт лога компиляции** - повторно загружает значения в объект **LogDelphi**.
==== Импорт лога компиляции ====
=== Формат файла лога компиляции проекта ===
Наименование компилируемого проекта берется из строки вида
Проект "E:\_Projects\Agbis.dxe\Mailing\Mailing.dproj" (цели Build):
Контрольная сумма - общее количество предупреждений берется из строки вида
543 Предупреждение
Формат строки предупреждения
c:\Program Files (x86)\Embarcadero\RAD Studio\8.0\Bin\CodeGear.Delphi.Targets : warning : E:\_Projects\Agbis.dxe\ForAll\QStrings.pas(318) Warning: W1023 Comparing signed and unsigned types - widened both operands
Поля отделяются друг от друга **" : "**. Рассмотрим строку:\\
- **Targets** - неиспользуемое значение - "c:\Program Files (x86)\Embarcadero\RAD Studio\8.0\Bin\CodeGear.Delphi.Targets"
- **Тип ошибки** - используем только строки со значением **"warning"**
- **Описание ошибки** - текст типа "E:\_Projects\Agbis.dxe\ForAll\QStrings.pas(318) Warning: W1023 Comparing signed and unsigned types - widened both operands"
=== Порядок выполнения загрузки лога TLogDelphi.Load ===
- Загрузка текста из файла **LogDelphi**
- Общее количество предупреждений
- Наименование компилируемого проекта
- Загрузка записей в TItemLogDelphi
- считывается строка и выделяются поля **Targets**, **Тип ошибки**, **Описание ошибки**
* если поле **Тип ошибки** не равно **"warning"**, то строку игнорируем и переходим к следующей строке
* если поле **Тип ошибки** равно **"warning"**, то из поля **Описание ошибки** выделяются
- **Модуль** - наименование файла с предупреждением, номер строки - (E:\_Projects\Agbis.dxe\ForAll\QStrings.pas). Имя файла может быть полным или относительно папки проекта.
- **Строка** - номер строки в модуле, в которой возникло предупреждение (318).
- **Код** - Код типа предупреждения (W1023)
- **Описание** - Описание предупреждения (Comparing signed and unsigned types - widened both operands)
- Ищется запись в таблице "Типы предупреждений" по значению **Код**
* если запись найдена и неактивна, то строку игнорируем и переходим к следующей строке
* если запись найдена и активна, то продолжаем анализ
* если запись не найдена, то добавляется активная запись в "Типы предупреждений"
- Ищется запись в таблице "Лог изменений модулей" по значению **Модуль**
* если запись не найдена, то строку игнорируем и переходим к следующей строке (некому поручать исправления)
* если запись найдена, то считываются значения полей **Разработчик** и **E-MAIL**
- добавляется запись в "Лог компиляции проекта"
===== Дополнительная информация =====
* [[:dw_TFormLogHG|Лог изменений модулей]]\\
* [[dw_tformwarningtypes|Типы предупреждений]]\\
* [[:dw_TFormOrder|Поручения разработчикам]]\\
[[develop:at_delphiwarnings|Назад]]\\