Пример консольного приложения
Лучший способ изучить консольные приложения-создать
пресловутое "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;
Application.Run;
end;
Этого слишком много, чтобы быть достаточным. Вы видите, что подключен модуль Forms, однако он не используется, поэтому данную строку можно удалить. Строки с Application используются для инициализации OLE-сервера и вывода главной формы. Поскольку мы не используем ни того, ни другого, удалите и эти строки. Последнее действие - объяснить компилятору, что мы хотим создать обычное, простое, незамысловатое консольное приложение. Этого можно достичь с помощью команды $APPTYPE. Код в результате будет выглядеть так.
program EgConsoleHello;
{$APPTYPE CONSOLE}
{$R *.RES}
begin
end;
Ax да! Мы же собирались вывести свое приветствие! Для этого добавьте между begin и end строку
WriteLn ('Hello, world!');
Сохраните, скомпилируйте и запустите проект из командной строки. Надеюсь, вам понравилось? И еще одно замечание - консольные приложения используют стандартные потоки ввода-вывода, а значит, вы можете использовать функции Read, ReadLn, Write и WriteLn.
Функции Windows API для консольного
приложения
Вы можете делать гораздо больше в
консольном приложении, чем просто считывать и
выводить текст. Вам доступно около 40 функций Windows
API для работы с дисплеем, например изменение
атрибутов выводимых символов или изменение
размеров консоли.
В листинге 1.1 изменяется текст,
выводимый в заголовке консольного окна. Вы
можете найти этот пример на дополнительно
распространяемой дискете в папке EgConsoleTitle.
Листинг 1.1. Изменение заголовка консольного
окна
program EgConsoleTitle;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils;
{$R *.RES}
var
sNewTitle, sErrMsg: String;
begin
sNewTitle:='Welcome to
Con5ole World';
if not
SetConsoleTitle(PChar(sNewTitle)) then
begin
sErrMsg:=
'Unable to set caption - '+SysErrorMessage(GetLastError);
MessageBox(0,PChar(sErrMsg),'Error',MB_ICONEXCLAMATION+MB_OK);
end;
ReadLn;
end.
Здесь функция API SetConsoleTitle возвращает False, если назначить новый заголовок невозможно. GetLastError возвращает числовое значение последней ошибки API, которое SysErrorMessage конвертирует в строку для вывода на экран.