我如何能在一个delphi控制台应用程序(delphi xe6或更高)中清除控制台屏幕,我已经搜索了互联网和帮助文件,但似乎无法找到它?
我想知道在delphi单元中是否已经提供了一个功能来提供这个功能。
Delphi运行时库中没有提供这样的函数。你需要使用操作系统服务来编写自己的函数。MSDN上的这篇文章解释了如何做到这一点。https:/support.microsoft.comen-uskb99261
这样翻译一下。
procedure ClearScreen;
var
stdout: THandle;
csbi: TConsoleScreenBufferInfo;
ConsoleSize: DWORD;
NumWritten: DWORD;
Origin: TCoord;
begin
stdout := GetStdHandle(STD_OUTPUT_HANDLE);
Win32Check(stdout<>INVALID_HANDLE_VALUE);
Win32Check(GetConsoleScreenBufferInfo(stdout, csbi));
ConsoleSize := csbi.dwSize.X * csbi.dwSize.Y;
Origin.X := 0;
Origin.Y := 0;
Win32Check(FillConsoleOutputCharacter(stdout, ' ', ConsoleSize, Origin,
NumWritten));
Win32Check(FillConsoleOutputAttribute(stdout, csbi.wAttributes, ConsoleSize, Origin,
NumWritten));
Win32Check(SetConsoleCursorPosition(stdout, Origin));
end;