Содержание материала

 

Так же, лучше сразу создать свои функции для таких простых операций как позиционирование курсора, очистки экрана и отображение/скрытие курсора (так как в консольных API они немножко громозки и запутаны). Вот как они выглядят:

Code:

//-----------------------------------------

// Установка курсора в координаты X, Y

//-----------------------------------------

procedure GotoXY(X, Y: Word);

begin

Coord.X := X;

Coord.Y := Y;

SetConsoleCursorPosition(ConHandle, Coord);

end;

 

//-----------------------------------------

// Очистка экрана - заполнение его пробелами

//-----------------------------------------

procedure Cls;

begin

Coord.X := 0;

Coord.Y := 0;

FillConsoleOutputCharacter(ConHandle, ' ', MaxX * MaxY, Coord, NOAW);

GotoXY(0, 0);

end;

 

//--------------------------------------

// Показываем/Скрываем курсор

//--------------------------------------

procedure ShowCursor(Show: Bool);

begin

CCI.bVisible := Show;

SetConsoleCursorInfo(ConHandle, CCI);

end;

 

Как Вы успели заметить, мы воспользовались четырьмя функциями консольного API: GetStdHandle, SetConsoleCursorPosition, FillConsoleOutputCharacter, SetConsoleCursorInfo. Иногда может возникнуть задача определения размера консольного окна по вертикали и по горизонтали. Для этого мы создадим две переменные: MaxX и MaxY, типа WORD:

Code:

//--------------------------------------

// Инициализация глобальных переменных

//--------------------------------------

procedure Init;

begin

// Получаем дескриптор вывода (output)

ConHandle := GetConOutputHandle;

// Получаем максимальные размеры окна

Coord := GetLargestConsoleWindowSize(ConHandle);

MaxX := Coord.X;

MaxY := Coord.Y;

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить