Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
189 - ?
Сегодня, 19:10
 kott
В каком банке открыт…
29.06.2025
 Dan
WoL
23.06.2025
 PapkaI_Igrodel
Привет выжившие
23.06.2025
 PapkaI_Igrodel
MarketGameV4
13.06.2025
 IAmNotARobot
188 - RPG
17.02.2025
 Mefistofel
Galactic Showdown -…
30.01.2025
 Darthman
188 - ?
1.01.2025
 Mefistofel
187 - Bullet Heaven
17.12.2024
 VoroneTZ
187 - ?
21.11.2024
 Dan
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 1,795
новичок: BlitzID
Обсуждение «Ищу библиотеку для консоли»
Shirson
Avatar пользователя

Опубликовано 14.04.2016 19:07 (9 лет назад)    #
КаГтегорически приветствую.

Ищу библиотеку для Delphi, которая бы брала на себя всю рутину по управлению консолью, а именно:
Размеры и позиция окна, удобный вывод текста, самое главное, перехват и обработка нажатых клавиш, включая функуциональные (Alt, Shift и прочие Win не требуются), возможность делать это без ожидания ввода от пользователя - в плюс.
Т.е. именно рутина по пляскам с бубном вокруг WinAPI (самому делать - возни много)
Требуется либа именно для консоли. Не эмуляция её в VCL, а честное {$APPTYPE CONSOLE}

Знает кто-нибудь где подобного зверя взять?

P.S. Пока нашёл CRT32.pas
Поле доработки напильником меняет размеры окна и буффера, /но не ловит функциональные клавиши/^W. Допилил, уже ловит.
Походу, вопрос снят :)

редакция от Shirson, 14.04.2016 20:13

Shirson
Avatar пользователя

Опубликовано 15.04.2016 16:24 (9 лет назад)    #
В процессе работы с консолью столкнулся с одной странностью, которую непонимаю.

Есть струкрура, описанная в виндовсе так:

typedef struct _CHAR_INFO {
union {
WCHAR UnicodeChar;
CHAR AsciiChar;
} Char;
WORD Attributes;
} CHAR_INFO, *PCHAR_INFO;


в Делфи она объявлена так:

{$EXTERNALSYM _CHAR_INFO}
_CHAR_INFO = record
case Integer of
0: (
UnicodeChar: WCHAR;
Attributes: Word);
1: (
AsciiChar: AnsiChar);
end;


Я вижу явный косяк - должно быть (как минимум)
1: (
AsciiChar: AnsiChar;
Attributes: Word);


Нашёл в багтракере Эмбаркадеро заявку на баг http://qc.embarcadero.com/wc/qcmain.aspx?d=22852 (правда заявитель неправильно решение предложил).
Но баг отклонён как As Designed
Ведь явный косяк получается, если использовать ансичары, то нет доступа к аттрибутам. Или решили, что нехрена анси использовать, работайте через ВайдЧар, всё равно в винде они одинаковыйц тип имеют? Или я чего-тт не понимаю?

редакция от Shirson, 15.04.2016 16:36

Darthman
Древний организм
Avatar пользователя

Опубликовано 15.04.2016 16:48 (9 лет назад)    #
А чем вайдчар не устраивает в таком случае?
Какая делфи-то?
Shirson
Avatar пользователя

Опубликовано 15.04.2016 18:16 (9 лет назад)    #
Да вопрос не в том, что устраивает. Есть явный косяк в описании виндовской структуры, но производитель считает, что так и надо. Вопрос в том, почему так и должно быть (и чего я непонимаю :) )
Darthman
Древний организм
Avatar пользователя

Опубликовано 15.04.2016 19:23 (9 лет назад)    #
Такая запись говорит что можно адресовать по разному блоки памяти. Атрибуты остаются тебе доступны всегда. Размер рекорда равен макс. из вариантов перечисленных. В данном случае это WCHAR + Word.
Второй вариант говорит лишь о том, что в случае АНСИ надо читать не 2 байта первых, а только 1. ПРи этом атрибуты всеравно идут на 3 и 4 байте.

Нарисовать? :)

редакция от Darthman, 15.04.2016 19:23

Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 188 - RPG XIII
 187 - Bullet Heaven
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 Все конкурсы
Случайная игра
Голосование

Перепись стариканов и сочувствующих. 189?

Еще жив!
73% [11 Голосов]
Возможно
20% [3 Голосов]
Не, как то не хочется
7% [1 Голос]

Голосов: 15
Начало: 22.06.2025 12:53

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

Архив чата

27,291,538 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.