Пример использования макроопределений Назад В начало Вперед

Файл macros.inc

#define MacroNew
#define Macro2 3
#define MacroStr 'Привет!'

#define MacroMsg(mp1) message('Тест Макро: '+#mp1)

#declare MacroMsg2(mp1, mp2)
  message('Время начала компиляции: '+'#__DATETIME__');
  message('Файл программы: '+'#__FILE__');
  message('Версия Атлантис: '+'#__TOOLVER__');
  message('Тест Макро: '+#mp1);
  message('Тест Макро: '+#mp2);
#end

Файл macros.vip

interface MacroTest 'Тест макросов';
  show at (00,00,80,28);
  create view from Persons;

#include macros.inc

  handleEvent
	cmInit: {
	#undef MacroErr
	var s: string;
	s:= #MacroStr;
	#MacroMsg(s);
	#ifdef MacroNew
		s := 'Свежая версия';
	#else
		#if #Macro2 > 2
		s := 'Старая версия';
		#else
		#define MacroErr Неработоспособная версия #(Macro2)!
		#end
	#end
	#MacroMsg(s);
	#ifdef MacroErr
		#error Ошибка компиляции: #MacroErr
	#else
		#info Компиляция прошла успешно
		#MacroMsg2('Выполнение программы завершено.',
				 'Нажмите ESC')
	#end
}
  end;
end.

Компиляция завершается сообщением: "Информация: Компиляция прошла успешно".

При выполнении последовательно выдаются сообщения:

Если в файле macros.inc изменить две первые строки:

//#define MacroNew
#define Macro2 1.3

то компиляция завершится ошибкой с сообщением: "Ошибка: Ошибка компиляции: Неработоспособная версия 1.3!".