Читать «Учебник по Delphi 4.0» онлайн - страница 36

Unknown

Создание консольного приложения

А теперь забудьте обо всех этих кнопочках, пиктограммах и пропахших мышами приложениях — настоящие программисты и пользователи обожают текстовый режим! Если же говорить серьезно, иногда программы в текстовом режиме могут быть полезными. Примерам таких программ несть числа, и основная проблема всегда заключалась в том, что они запускались в окне DOS и не имели доступа к Windows API или к таким ресурсам, как принтеры и память (не говоря уже о том, что это были 16-разрядные приложения с 640-килобайтовым ограничением на используемую память). Теперь, когда Delphi поддерживает создание консольных приложений, можно создавать 32-разрядные текстовые приложения с использованием линейной модели памяти и с возможностью работать с Windows API и применять ресурсы

Обычно консольные приложения используются, когда не нужно вводить информацию большого объема и требования к интерфейсу сведены к минимуму. Ну и заметим к тому же, что простенькое „Hello, world!“, созданное путем размещения компонента TLabel в форме, будет иметь размер около 150 Кбайт, в то время как консольное „Hello, world!“ уложится в 10…

Пример консольного приложения

Лучший способ изучить консольные приложения — создать пресловутое „Hello, world!“. Для создания его вручную сделайте следующее.

1. Выберите команду File/New Application.

2. Выберите команду File/Remove From Project, и появится диалоговое окно, Remove From Project, показанное на рис. 1.15.

3. В проекте содержится один модуль формы. Выберете его и щелкните на кнопке ОК. Появится диалоговое окно Save changes to Unit1.pas?

4. Щелкните на кнопке No, и форма будет удалена из проекта.

Сохраните проект как EgConsoleHello.

Рис. 1.15.Диалоговое окно Remove From Project позволяет удалять модули и формы из проекта.

Хотя мы создаем „бесформенное“ приложение, оно все еще не является консольным и использует GUI, а значит, сравнимо по размеру с бронтозавром. Выберите команду View/Project Source, и в редакторе появится следующий текст.

program EgConsoleHello;

uses

Forms;

{$R *.RES}

begin

Application.Initialize;

end;

Этого слишком много, чтобы быть достаточным. Вы видите, что подключен модуль Forms, однако он не используется, поэтому данную строку можно удалить. Строки с Application используются для инициализации OLE-сервера и вывода главной формы. Поскольку мы не используем ни того, ни другого, удалите и эти строки. Последнее действие — объяснить компилятору, что мы хотим создать обычное, простое, незамысловатое консольное приложение. Этого можно достичь с помощью команды $APPTYPE. Код в результате будет выглядеть так.

program EgConsoleHello;

{$APPTYPE CONSOLE}

{$R *.RES}

begin

end;

Ax да! Мы же собирались вывести свое приветствие! Для этого добавьте между begin и end строку

WriteLn ('Hello, world!');

Сохраните, скомпилируйте и запустите проект из командной строки. Надеюсь, вам понравилось? И еще одно замечание — консольные приложения используют стандартные потоки ввода-вывода, а значит, вы можете использовать функции Read, ReadLn, Write и WriteLn.