Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 05.02.2020
Сообщений: 13

Как отключить указатель мыши в консольном приложении (Pascal, модуль CRT)

06.02.2020, 16:59. Показов 3135. Ответов 10

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть ли возможность отключить указатель мыши в консольном приложении в PascalABC.NET, проблема в том, что когда пользователь нажимает мышкой на активное консольное окно, программа останавливается.

P.S. : Мне нужно не отключить курсор(каретку) а именно сделать так, чтобы нажатия на окно с программой указателем мыши не давало никакого результата(игнорировалось).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.02.2020, 16:59
Ответы с готовыми решениями:

Как в консольном приложении скрыть курсор мыши?
Добрый вечер, Как в Win32 Console Application скрыть курсор мышки (не каретку ввода).

Как отслеживать события нажатия кнопок мыши в консольном приложении?
По нажатию на правую кнопку мыши создавать поток, который будет генерировать случайные числа. По нажатию на левую кнопку останавливать...

Как сделать указатель (аналог указателя мыши) в приложении
Добрый день! Подскажите направление или примеры. Нужно следующие: - создать указатель в своем приложении (как от мыши на пк) -...

10
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.02.2020, 17:05
Pascal
1
2
3
4
5
uses crt;
begin
  hidecursor;
  write('1221313132')
end.
0
1 / 1 / 0
Регистрация: 05.02.2020
Сообщений: 13
06.02.2020, 17:15  [ТС]
Puporev, Этот код просто отключает отображение каретки, но никак не отключает действия указателя мыши в окне.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.02.2020, 19:14
Цитата Сообщение от AlbertMihJew Посмотреть сообщение
но никак не отключает действия указателя мыши в окне.
А какие действия у Вас происходят в консоли при клике мышью?
0
1 / 1 / 0
Регистрация: 05.02.2020
Сообщений: 13
06.02.2020, 19:24  [ТС]
Puporev, Символы пропадают, а мышь выделяет то знакоместо на которое кликаешь. ОС, если что, Windows 10
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.02.2020, 19:27
У меня Win 7. ничего подобного нет.
0
1 / 1 / 0
Регистрация: 05.02.2020
Сообщений: 13
06.02.2020, 19:37  [ТС]
Puporev, Вот, как-то так.
Миниатюры
Как отключить указатель мыши в консольном приложении (Pascal, модуль CRT)   Как отключить указатель мыши в консольном приложении (Pascal, модуль CRT)   Как отключить указатель мыши в консольном приложении (Pascal, модуль CRT)  

0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
06.02.2020, 21:57
Лучший ответ Сообщение было отмечено AlbertMihJew как решение

Решение

Это не клик мыши. Это выделение области мышкой. Оно обычно используется для копирования текста.

На время - вывод замораживается. Но, я так понимаю, очистка экрана всё равно работает.

Решения:
---
У консоли всё можно настраивать.

Но настройки, разумеется, локальны для вашего компа. Да и ИМО консоль в вин10 офигенна. Я сам пару мелочей менял и в целом наслаждался.

---

Консоль это вам не нормальная графика, где можно заморозить всё (как LockDrawing в GraphABC), а затем очищать весь экран, рисовать что хотите и перерисовывать всё вместе.

То есть нет, двойную буферизацию можно свелосипедить в консоли. А ещё есть проекты 3D графики в консольке. А вообще ещё есть люди пишущие что то огромное на бреинфаке. Только это всё страдание саморазвитием.

Но если вернуться на землю - полная очистка консоли и затем вывод всего текста заново - это, как ни крути, мигание.

Если вы хотите именно простой вывод текста с функционалом консоли, но так чтоб можно было затирать предыдущие строки и рисовать что то поверх них - можно не очищать весь экран, а выводить текст именно в нужную строку (закрашивая всё остальное на строчке пробелами).

Ну и, кстати, использование crt уже более десяти лет не имеет смысла. Правильно использовать класс System.Console, потому что crt это огрызок этого класса.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure OtpOnLine(otp: string; line: integer);
begin
  // устанавливаем курсор в начало строчки
  System.Console.SetCursorPosition(0,line);
  // и выводим строку, добавляя справа достаточно пробелов, чтоб заполнить остаток строчки
  Write(otp.PadRight(System.Console.BufferWidth));
end;
 
begin
  System.Console.CursorVisible := false; // отключение курсора
  
  var i := 0;
  while true do
  begin
    OtpOnLine($'текст, число = {i}, другой текст', 0);
    Sleep(500);
    i += 1;
  end;
  
end.
В данном случае миганий не будет, даже при переходе от i=9 к i=10 (тогда вторая часть текста сдвигается), потому что вывод всей строчки происходит за одну операцию.

Ну, разумеется, не обязательно делать это с целой строчкой. Это только пример. Если вы знаете максимальную длину текста - можно ограничить кол-во затирающих пробелов.
1
1 / 1 / 0
Регистрация: 05.02.2020
Сообщений: 13
07.02.2020, 00:27  [ТС]
Sun Serega, спасибо, я нашёл эту настройку.
0
1 / 1 / 0
Регистрация: 05.02.2020
Сообщений: 13
07.02.2020, 15:21  [ТС]
А где найти справку по этому классу?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
07.02.2020, 15:31
Всё из System - это .Net . Справка .Net находится на msdn. Её легко открыть гуглом, написав имя класса, как System.Console. Или если нужно отдельное свойство/метод - System.Console.CursorVisible.
https://docs.microsoft.com/en-... mework-4.8
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.02.2020, 15:31
Помогаю со студенческими работами здесь

Событие мыши в консольном приложении
В консольном приложении реализовать вывод в нижнюю строку экрана символы, по которым производится «клик» левой кнопкой мыши. Выход из...

Отслеживание действия мыши в консольном приложении
Доброго времени суток. Мне необходимо понять как написать обработчик движения мыши в консольном приложении. Перерыл много тем, но ответа...

Код который работает в консольном приложении в приложении Windows Forms выдает ошибку
Есть код для записи видео с экрана. В консольном приложении он работает, записывает все как нужно. Вставляю код классов в приложение...

Как создать окно в консольном приложении?
Я начинающий программист СИ++ в CODE::BLOCKS Можно ли создавать консольные приложения, которые будут выводить окна наподобие того, что...

Как в консольном приложении замутить сохренение?
1)сморите такой трабл КейГен тоесть узнаёт ключи для привязки программы! Я замутил один! И даже замутил сохранение! Но для моей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru