1.3.3. $APPTYPE : Указать тип приложения

На верх  Назад  Вперёд

В текущий момент эта директива поддерживается только для следующих целевых платформ: 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-приложение.