Холодильник не был корректно закрыт перед последним выключением питания.
Произвести проверку содержимого холодильника?
При проверке было найдено один или несколько испорченых продуктов. Сохранить их в отдельном отсеке?
Восстановить испорченные продукты?
Восстановление не удалось, продукты доступны только для просмотра.
Нужно просто использовать GetConsoleScreenBufferInfo() для ввода нескольких
пустых строк.
program Project1;
{$APPTYPE CONSOLE}uses
Windows;
{$R *.RES}var
sbi: TConsoleScreenBufferInfo;
i: integer;
begin
Writeln('A Console Applicaiton');
Writeln('Press Enter To Clear The Screen');
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),
sbi);
Readln;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),
sbi);
for i := 0 to sbi.dwSize.y do
writeln;
Writeln('Press Enter To End');
Readln;
end.
Программа - консольное приложение на Delphi, которое очищает экран, написав несколько пустых строк в консоли.
Вот что она делает:
Она пишет "A Console Applicaiton" и "Press Enter To Clear The Screen" в консоли.
Она ожидает, пока пользователь нажмет Enter, используя Readln.
Она получает информацию о буфере экрана консоли с помощью GetConsoleScreenBufferInfo и хранит ее в переменной sbi.
Она пишет несколько пустых строк в консоли с помощью цикла, который повторяется от 0 до количества строк в буфере экрана (sbi.dwSize.y). Это эффективно очищает экран, заполняя его пустыми строками.
Однако есть более эффективный способ очистки экрана без необходимости писать несколько пустых строк. Можно использовать FillConsoleOutputCharacter для заполнения всего буфера экрана консоли указанным символом (в этом случае - пробелом или новой строкой). Вот пример:
programProject1;{$APPTYPE CONSOLE}usesWindows;varhConsoleOut:THandle;beginWriteln('A Console Applicaiton');Writeln('Press Enter To Clear The Screen');Readln;hConsoleOut:=GetStdHandle(STD_OUTPUT_HANDLE);FillConsoleOutputCharacter(hConsoleOut,#13,sbi.dwSize.y*sbi.dwSize.x,Coord(0,0),@sbi);Writeln('Press Enter To End');Readln;end.
В этом коде:
Мы получаем handle консольного вывода с помощью GetStdHandle(STD_OUTPUT_HANDLE).
Мы вызываем FillConsoleOutputCharacter для заполнения всего буфера экрана консоли новой строкой (#13).
Остальная часть программы остается прежней.
Этот подход более эффективен, потому что он напрямую очищает экран без необходимости писать несколько пустых строк, что может быть ресурсо- и временем-конsuming.
В консольном приложении можно гарантированно очистить экран, используя функцию GetConsoleScreenBufferInfo для ввода нескольких пустых строк.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.