Lazarus + Linux console

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Lazarus + Linux console

Сообщение still » 08.10.2015 22:15:59

v-t-l... :)
Это да, только повторюсь, это чистая работа с терминалом. Например очистка экрана - вывод пустых строк. И тд и тп.
Такое для принтера хорошо, а не для терминального приложения чуть сложнее чем просмотр лога.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Lazarus + Linux console

Сообщение Alex2013 » 12.10.2015 11:27:07

1 В консоли линукса нет врожденного эмулятора дос как в Виндовс . (А Туробовижен работает с видепмятью напрямую $B800:ХХХХ )
2 Это именно терминал которому можно подключаться хоть телнетом хоть через модем
3 Если копать исходники то лучше смотреть в строну МиднайтКомандера (МС) помню дико восхищала возможность "пробраться куда нибудь в shell" (На древние серваки американских универов например :D ) и запустить МС ...
4 ANSI код действительно работает почти везде но есть версии МС которые могут работать и без него (Есть еще более простые терминальные последовательности )
https://ru.wikipedia.org/wiki/%D0%A3%D0 ... 0%BB%D1%8B
(Для очистки консоли почти везде работает вывод Chr(12) $0C FORM FEED прогон страницы, смена страницы ^L \f )
P.S.
Буга ! scn.org еще жив (прямо типа "Флин жив!" 8) :shock: :idea: ) ...
(Кстати посмотри как там страницы очищает )
@ubuntu:/home$ telnet scn.org
Trying 66.212.64.194...
Connected to scn.org.
Escape character is '^]'.

Seattle Community Network Sun Solaris 1.1.1.B
Please login as 'visitor' if you are a visitor


SunOS UNIX (scn)

login:
Alex2013
долгожитель
 
Сообщения: 3117
Зарегистрирован: 03.04.2013 11:59:44

Re: Lazarus + Linux console

Сообщение still » 23.11.2015 02:00:07

В общем нарисовал объект, даже с цветами и буферизацией.
Проблема в общема под мои нужны решена.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Lazarus + Linux console

Сообщение azsx » 23.11.2015 18:13:31

Проблема в общема под мои нужны решена.

не совсем понятно, а как решена? То есть инструментом free vision?
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Lazarus + Linux console

Сообщение still » 23.11.2015 23:43:25

azsx писал(а):не совсем понятно, а как решена? То есть инструментом free vision?


Нет. Самое сложное было получить разрешение консоли. Решилось так:
Код: Выделить всё
procedure TConsole.GetSize;
var
WinInfo : TWinSize;
begin
if (fpIOCtl(TextRec(Output).Handle, TIOCGWINSZ, @Wininfo)>=0) then begin
  AWidth:=Wininfo.ws_col;
  AHeight:=Wininfo.ws_row;
end;
end;



Далее написал функцию отправки эскейп последовтельностей вот так:

Код: Выделить всё
procedure TConsole.WriteSCI(AString:String);
begin
Write(Char(27)+'['+AString);
end;


Далее написал класс TConsole в котором реализовал всякую всячину работы с консолью UTF16, UTF8.
Код: Выделить всё
constructor Create;
destructor Destroy; override;
procedure GetSize(var AWidth:word; var AHeight:word);
procedure Clear;
procedure WriteString(AString:string);
procedure WriteSCI(AString:String);
procedure SetCursorPosition(x:integer; y:integer);
property Cursor:boolean read FCursor write SetCursor;
property Width:integer read GetWidth;
property Height:integer read GetHeight;
// Буфферизация
function FrameBegin:boolean;
procedure FrameEnd;
function GetBuffered:boolean;
property Buffered:boolean read GetBuffered;
property Window:TWindow read FWindow;
function Resized:boolean;

function GetColorInc:byte;
procedure SetColorInc(AValue:byte);
function GetColorPaper:byte;
procedure SetColorPaper(AValue:byte);
function GetColorAttr:TColorAttr;
procedure SetColorAttr(AValue:TColorAttr);

property ColorInc:byte read GetColorInc write SetColorInc;
property ColorPaper:byte read GetColorPaper write SetColorPaper;
property ColorAttr:TColorAttr read GetColorAttr write SetColorAttr;


TWindow - в котором сделал буфферизацию, сейчас сижу допиливаю вывод окон, перекрытие и так далее. Мне пока хватит для интерфейса.
Код: Выделить всё
constructor Create;
destructor Destroy; override;

property Caption:string read FCaption write SetCaption;
property Name:string read FName write FName;
property Width:integer read FWidth write SetWidth;
property Height:integer read FHeight write SetHeight;

procedure SetSize(AWidth:integer; AHeight:integer);
procedure WriteString(AString:string);
property WrapLine:boolean read FWrapLine write FWrapLine;
property ColorInc:byte read FColorInc write FColorInc;
property ColorPaper:byte read FColorPaper write FColorPaper;
property ColorAttr:TColorAttr read FColorAttr write FColorAttr;
property CursorX:integer read FCursorX write FCursorX;
property CursorY:integer read FCursorY write FCursorY;
property Buffer:PBuffer read FBuffer;
procedure SetCursorPosition(x,y:integer);
procedure Clear;
procedure Fill;
procedure Display(AWindow:TWindow);
property Left:integer read FLeft write SetLeft;
property Top:integer read FTop write SetTop; 



Короче как обычно... Сейчас пытаюсь разобраться как с клавы читать.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Lazarus + Linux console

Сообщение Alex2013 » 25.11.2015 00:49:42

Обычные read и readln как я понимаю не подходят ?
Хотя "честное консольное приложение" по идее должно уметь читать и "стандартный ввод" вдруг переопределят или кому-то макрос придет голову написать ...
Вообще должно "асигнавться" устройство в /dev/... (stdin или console ?)

:arrow: https://ru.wikipedia.org/wiki/Conio.h
:roll:
Alex2013
долгожитель
 
Сообщения: 3117
Зарегистрирован: 03.04.2013 11:59:44

Re: Lazarus + Linux console

Сообщение still » 25.11.2015 17:25:51

Я в конечном счете делаю вывод через write. До ввода потока еще не добрался. Нет необходимости пока.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Lazarus + Linux console

Сообщение unxed » 06.02.2022 15:35:21

SSerge писал(а):
still писал(а):С этим кто нить работал?

библиотека брошена и никто ей серьёзно не занимается


Не настолько прямо брошена. Самое главное, чего в ней не хватало — поддержки юникода — сделали:
https://gitlab.com/freepascal.org/fpc/s ... _833019965
unxed
новенький
 
Сообщения: 29
Зарегистрирован: 25.10.2020 23:38:56

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru