Справочник функций и процедур Delphi: $I

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

$I
Деректива компилятора
Позволяет встроить код указанного файла в модуль unit
  1 {$I FileName}; 2 {$I-}; 3 {$I+}

Google  
 
Описание
Директива компилятора $I охватывает две цели. Во-первых, для включения кода файла в текущий модуль. Во-вторых, для управления выдачей исключений при ошибке IO (ввода/вывода). Версия 1 Это очень полезно для включения директив компилятора или общего кода во все ваши модули для гарантирования последовательности и отдельной точки управления. По умолчанию расширение файла - .pas, поэтому для .pas файлов требуется только имя файла. Используйте кавычки, если имя файла включает один или более пробелов. Например: Common.pas file: {$ReferenceInfo On} {$RangeChecks On} {$OverFlowChecks On} Unit1.pas file: ... {$I Common} ... Версия 2 и 3 Значение по умолчанию {$I +} генерирует EInOutError исключение, когда происходит ошибка IO. При {$I-} исключение не генерируется. Вместо этого, ответственность за проверку операций ввода/вывода возлагается на IOResult подпрограмм.
Примечания
$I FileName эквивалентно $Include FileName. $I- эквивалентна $IOChecks Off. $I+ эквивалентна $IOChecks On. Эта директива может использоваться в вашем коде многократно.
Похожие команды
$Include  Позволяет коду в указанном файле быть включенным в Модуль

$IOChecks  

IOResult  Содержит возвращаемый код последней операции ввода/вывода

 
Пример кода : Заманивание в ловушку IO исключений, и использование IOResult
var
  error : Integer;

begin
  // Попытка создать новый подкаталог в текущем каталоге
  // Выключение проверки ошибок ввода/вывода
  {$I-}
  MkDir('TempDirectory');

  // Каталог создался?
  error := IOResult;
  if error = 0
  then ShowMessage('Каталог создался')
  else ShowMessageFmt('Создание каталога потерпело неудачу с ошибкой %d',[error]);

  // Попытка создать новый подкаталог в текущем каталоге - произойдёт ошибка!
  MkDir('TempDirectory');
  error := IOResult;
  if error = 0
  then ShowMessage('Каталог создался снова')
  else ShowMessageFmt('Повтор создания провалился с ошибкой %d',[error]);

  // Удаление каталога для очистки
  RmDir('TempDirectory');

  // Включение проверки ошибок ввода/вывода
  {$I+}
end;
Каталог создался
Повтор создания провалился с ошибкой 183
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook