06.12.2019, 05:37 [+3 UTC]
в нашей команде: 4 033 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.78 (18.11.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
29.11.2019, 17:59

Последний вопрос:
05.12.2019, 11:01
Всего: 151176

Последний ответ:
05.12.2019, 15:20
Всего: 259536

Последняя рассылка:
05.12.2019, 15:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
10.12.2017, 11:49 »
IIISergeyIII
Большое спасибо за ваше дружеское участие в решение задачи! (А не в просто выдаче ответа для списывания) [вопрос № 192056, ответ № 275793]
23.12.2013, 23:07 »
Xgrows
ОГРОМНОЕ СПАСИБО!!! Что бы я делал без Вас! Вы мне очень помогли! Надеюсь у меня все решится после Вашей помощи. [вопрос № 187688, ответ № 272612]
23.08.2019, 21:30 »
dar777
Это самое лучшее решение! [вопрос № 196163, ответ № 278563]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 702
puporev
Статус: Профессионал
Рейтинг: 488
Gluck
Статус: 9-й класс
Рейтинг: 450

Перейти к консультации №:
 

Консультация онлайн # 197103
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Delph (1-й класс)
Отправлена: 16.11.2019, 17:54
Поступило ответов: 1

Здравствуйте, уважаемые эксперты!

Работаю с Free Pascal (Windows). Возникла потребность работать непосредственно с буфером текстовой консоли, то есть читать и записывать информацию напрямую (для упрощённого создания оконного меню). Как это сделать?

Заранее благодарен за подсказки и ответы!

Состояние: Консультация закрыта

Здравствуйте, Delph!

Это вопрос скорее не по Pascal, а по WinApi.
Смотрите Экранный буфер консоли.
Удачи!


Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 21.11.2019, 10:33

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 197103

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 1

= общий = | 19.11.2019, 12:37 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Delph:

© Цитата: Delph
Free Pascal (Windows)

Free Pascal под Windows создает полноценное WinAPI-приложение:
Превращая код:
Код (Pascal) :: выделить код
var
  a:integer;
begin
  write('enter A:=');
  readln(a);
end.

В это:

Первая п/п sub_407AC0 - записывает параметры консоли во внутренние переменные.
Второая п/п sub_406BC0 - собственно сама программа.

Можно почитать Экранный буфер консоли

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Delph
1-й класс

ID: 400894

# 2

= общий = | 21.11.2019, 16:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

А можно ли как-то связать буфер консоли с массивом в памяти программы? В DOS это работало и позволяло простым присваиванием прописать любой нужный символ с выбранными атрибутами по нужным координатам на экране.

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 3

= общий = | 22.11.2019, 10:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Delph:

© Цитата: Delph
А можно ли как-то связать буфер консоли с массивом в памяти программы?

Внимательно перечитайте ссылку на экранный буфер консоли:
© Цитата:
Система создает экранный буфер всякий раз, когда она создает новую консоль. Чтобы открыть дескриптор активного экранного буфера консоли, при вызове к функции CreateFile установите значение CONOUT$ . Процесс может использовать функцию CreateConsoleScreenBuffer, чтобы создать дополнительные экранные буферы для своей консоли. Новый экранный буфер не активен до тех пор, пока его дескриптор не будет определен при вызове к функции SetConsoleActiveScreenBuffer. Однако к экранным буферам можно обращаться для чтения и записи, независимо, являются ли они активными или неактивными.

Каждый экранный буфер имеет свой собственный двухмерный массив записей текстовой информации. Данные для каждого символа сохраняются в структуре CHAR_INFO, которая определяет символы Unicode или ANSI, и цвет текста и цвета фона, на котором этот символ отображен.

Вам нужно будет перечитать так же информацию о всех функциях, которые упоминаются по ссылкам.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.21689 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.78 от 18.11.2019
Версия JS: 1.34 | Версия CSS: 3.35