В текущий момент эта директива поддерживается только для следующих целевых платформ: Win32, Mac, OS2 и AmigaOS. На других целевых платформах эта директива игнорируется.
Директива {$APPTYPE XXX} принимает один аргумент, который указывает, какого типа приложение нужно компилировать. Этот аргумент может принимать следующие значения:
CONSOLE
|
Консольное приложение. Будет создан терминал, а дескрипторы файлов стандартного ввода-вывода и ошибок будут инициализированы. В Windows будет создано окно терминала. Это значение по умолчанию.
Учтите, то в Mac OS такие приложения не могут принимать параметры командной строки и возвращать код результата. Они запускаются в специальном терминальном окне, выполняемом как SIOWapplication, подробности см. в документации MPW.
На OS/2 эти приложения могут запускаться как в полноэкранном, так и в терминальном окнах.
Приложения LINUX – это всегда консольные приложения. Однако само приложение может принять решение о закрытии стандартных файлов.
|
FS
|
Задаёт полный экран приложения VIO на OS/2. Эти приложения используют специальные BIOS-подобные API для программирования экрана. OS/2 запускает эти приложения всегда в полноэкранном режиме.
|
GUI
|
Директива {$APPTYPE GUI} помечает приложение как графическое. Консольное окно не будет открыто при запуске приложения. Стандартные файловые дескрипторы не будут инициализированы, их использование (например, использование оператора writeln) приведёт к ошибке во время выполнения. При запуске из командной строки произойдёт немедленный возврат в командную строку после запуска приложения.
На OS/2 и Mac OS приложения типа GUI создают GUI-приложение как на Windows. На OS/2 это реальное приложение Presentation Manager.
|
TOOL
|
Это специальная директива для Mac OS. Она указывает компилятору, что требуется создать приложение-инструмент, которое инициализирует файлы Input, Output и StdErr и может принимать параметры и возвращать код результата. Оно выполняется как инструмент MPW, который может запускаться только с помощью MPW или ToolServer.
|
Следует соблюдать осторожность при компиляции приложений с графическим интерфейсом (GUI-приложений). Файлы Input и Output не доступны в GUI-приложении, и попытка чтения или записи этих файлов приведёт к ошибке времени выполнения
Можно определить тип приложения WINDOWS или AMIGA во время выполнения. Константа IsConsole, объявленная в Win32 и Amiga системных модулях как
Const
IsConsole : Boolean;
Имеет значение True, если приложение является консольным, и False, если это GUI-приложение.
|