Створення консольного застосування - delphi sources faq
А тепер забудьте про всі ці кнопочках, піктограмах і пропахлих мишами додатках - справжні програмісти і користувачі люблять текстовий режим! Якщо ж говорити серйозно, іноді програми в текстовому режимі можуть бути корисними. Прикладів таких програм несть числа, і основна проблема завжди полягала в тому, що вони запускалися в вікні 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.
Цього дуже багато, щоб бути достатнім. Ви бачите, що підключений модуль Forms, проте він не використовується, тому цей рядок можна видалити. Рядки з Application використовуються для ініціалізації OLE-сервера і виведення головної форми. Оскільки ми не використовуємо ні того, ні іншого, видаліть і ці рядки. Остання дія - пояснити компілятору, що ми хочемо створити звичайне, просте, нехитре консольний додаток. Цього можна досягти за допомогою команди $ APPTYPE. Код в результаті буде виглядати так.
Ax так! Ми ж збиралися вивести своє вітання! Для цього додайте між begin і end рядок
Збережіть, скомпілюйте і запустіть проект з командного рядка. Сподіваюсь вам сподобалось? І ще одне зауваження - консольні додатки використовують стандартні потоки введення-виведення, а значить, ви можете використовувати функції Read, ReadLn, Write і WriteLn.
Функції Windows API для консольного застосування
Ви можете робити набагато більше в консольному додатку, ніж просто зчитувати і виводити текст. Вам доступно близько 40 функцій Windows API для роботи з дисплеєм, наприклад зміна атрибутів символів, що виводяться або зміна розмірів консолі.
У лістингу 1.1 змінюється текст, що виводиться в заголовку консольного вікна. Ви можете знайти цей приклад на додатково поширюваної дискеті в папці EgConsoleTitle.
Лістинг 1.1. Зміна заголовка консольного вікна
Тут функція API SetConsoleTitle повертає False, якщо призначити новий заголовок неможливо. GetLastError повертає числове значення останньої помилки API, яке SysErrorMessage конвертує в рядок для виведення на екран.
Порада: Інформація, що поставляється з Delphi система довідки по Win32 містить функції консольного API. Для доступу до них виведіть пункт Console Reference і клацніть на кнопці.