IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Fpc: как получить размеры консоли, 25х80 или еще сколько... Lin, Win
сообщение
Сообщение #1


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Привет!
Как известно, размеры консоли под winnt и linux не ограничиваются стандартными 25х80/24х80/сколько-там-еще-бывает. Так вот, хочется получать размеры, чтобы консольное приложение симпатично выглядело.

Пока что обошелся указанием размера как констант:
const
maxx = 80;  // ! how to get them
 maxy = 25;  // ! runtime? real sizes?
В итоге при запуске, например, из FAR'а, развернутого на весь экран, остаются черные поля справа и снизу. Некрасиво. При запуске проекта, перекомпилированного под Linux, вообще черт знает что получается (по умолчанию там Konsole открывает окошко в 80х24 символа, и прога красиво глючит. И вообще этот размер там меняется мышкой до любого, как пользователю взбредет).

Так что хочется получать настоящие размеры, желательно, чтобы способ был универсальным (то есть компилировался Free Pascal'ем как под Win, так и под Linux, так что использование какого-нибудь там WinAPI и LinAPI +) не очень удобно...)


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Все, всем спасибо, нашел полную версию FPC с подробнейшей документацией (у меня было по минимуму поставлено, а ФАКов что-то не нашел). Вот решение, если кому интересно:
uses video;
....
   initVideo;
   maxx := ScreenWidth - 1; maxy := ScreenHeight - 1;
...
Как утверждается, модуль реализован и для Win32, и для Linux, и для других ОСей. То есть по идее проблемы с кроссплатформенностью не должно быть (под lin еще не пробовал, впрочем. Может, еще пошлют какую-нибудь библиотеку искать...)

Не совсем корректно работает при запуске из cmd.exe - выдает размеры экрана 80х59 (ширина правильно. Высота - у меня столько влезает на экран если окошко растянуть, а хотелось бы иметь текущую высоту окна. ИМХО это проблемы cmd.exe). При запуске из FAR'а все нормально.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Кстати, все забываю написать: если при использовании модуля video под Linux компилятор ругается:
/usr/bin/ld: cannot find -lcurses 



это решается созданием ссылки на libncurses.a с именем libcurses (криво написал... короче, вот что надо сделать: )
cd /usr/lib 
ln -s libncurses.a libcurses.a

Возможно, это относится только к моему дистрибутиву (SuSE 9.0), но мало ли кому пригодится...


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 17:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name