|
Вопрос # 2 423/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты! Подскажите пожалуйста, возможно ли в консольном приложении Delphi изменять цвет шрифта/фона, и если да, то какими командами?
 |
Вопрос задал: AlphA (статус: Посетитель)
Вопрос отправлен: 16 февраля 2009, 23:06
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, AlphA!
Да, можно. Для начала почитайте это. А дальше, если будут вопросы - пишите, разберём.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 17 февраля 2009, 00:56
|
Ответ #2. Отвечает эксперт: min@y™
Если вспомнить турбопаскаль, то там в нём был чудесный модуль CRT, в котором были функции управления цветом/фоном выводимого текста, а также другие полезные функции.
В Windows для управления консольным вводом/выводом существуют соответствующие API-функции:
- AllocConsole
- CreateConsoleScreenBuffer
- FillConsoleOutputAttribute
- FillConsoleOutputCharacter
- FlushConsoleInputBuffer
- FreeConsole
- GenerateConsoleCtrlEvent
- GetConsoleCP
- GetConsoleCursorInfo
- GetConsoleMode
- GetConsoleOutputCP
- GetConsoleScreenBufferInfo
- GetConsoleTitle
- GetLargestConsoleWindowSize
- GetNumberOfConsoleInputEvents
- GetNumberOfConsoleMouseButtons
- GetStdHandle
- HandlerRoutine
- PeekConsoleInput
- ReadConsole
- ReadConsoleInput
- ReadConsoleOutput
- ReadConsoleOutputAttribute
- ReadConsoleOutputCharacter
- ScrollConsoleScreenBuffer
- SetConsoleActiveScreenBuffer
- SetConsoleCP
- SetConsoleCtrlHandler
- SetConsoleCursorInfo
- SetConsoleCursorPosition
- SetConsoleMode
- SetConsoleOutputCP
- SetConsoleScreenBufferSize
- SetConsoleTextAttribute
- SetConsoleTitle
- SetConsoleWindowInfo
- SetStdHandle
- WriteConsole
- WriteConsoleInput
- WriteConsoleOutput
- WriteConsoleOutputAttribute
- WriteConsoleOutputCharacter
Так вот, некто Attila Szomor написал модуль CRT32.pas для Delphi, в котором изящно обернул использование вышеприведённых функций в привычные с паскаля функции модуля CRT, такие как TextColor(), TextBackground(), ClrScr(), Window() и пр. Прицепляю этот модуль к ответу.
Не рекомендую пользоваться функцией ReadKey. Она там оформлена в виде бесконечного цикла. Вмеcто этого следует пользоваться способом, описанным в статье Сергея Гаврилова "Программирование консольных приложений". Эту статью я также прицепляю к ответу. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 18 февраля 2009, 10:30
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|