Вверх ↑
Ответов: 701
Рейтинг: 146
#1: 2023-10-19 18:44:28 ЛС | профиль | цитата
Пример того, как можно изменять шрифт, цвет и размер окна консоли

Всё засунул в InlineCode.

Add(MainForm,1281773,77,133)
{
Width=476
Height=205
Caption="Использовать консоль в неконсольном приложении"
link(onCreate,8396709:doEvent1,[])
}
Add(ArrayEnum,12358217,168,161)
{
link(onItem,10359936:doWriteToConsole,[])
link(onEndEnum,15767886:doWork2,[])
link(Array,690153:Array,[])
}
Add(StrList,690153,154,105)
{
Strings=#37: __ __ _ _____ _____ _____ |37: | | |_| _ | __| | |37: | | | |__ | | | | |37: |__|__|_|__|__|_____|_|_|_| |11: |0:|0:|90:Item | Description | Quantity | Unit | Price | Value | |89:-----------------------------------------------------------------------------------------|90:13930 | Double-action Quickstart II rem. L=740mm | 1 | PC | 98,66 | 98,66 | |90:13100201 | Spray gun for udder washer | 20 | PC | 17,77 | 355,4 | |90:13246007 | COMBI-cock ?51 mm cpl. | 10 | PC | 63,43 | 634,3 | |90:25643301 | Milk hose ? 24/14 x 2750 | 32 | PC | 9,76 | 312,32 | |90:14291 | Service no.1 RDS MAX double box | 1 | PC | 250,51 | 250,51 | |90:24144638 | Spiral spring for tube filter | 3 | PC | 43,2 | 129,6 | |90:22121763 | V-belt spz 1087 | 4 | PC | 5,91 | 23,64 | |90:MH0015 | Repair kit non-rotating cylinder ?40mm | 8 | PC | 14,3 | 114,4 | |0:|0:|
}
Add(Memo,3647522,294,154)
{
Width=460
Height=166
Align=5
Font=[Lucida Console,14,0,0,204]
ScrollBars=3
}
Add(Button,12285898,168,203)
{
Left=265
Top=160
Align=4
Caption="Get text from console"
link(onClick,15767886:doWork3,[(214,209)])
}
Add(HubEx,15767886,210,168)
{
link(onEvent,10359936:doReadFromConsole,[])
}
Add(InlineCode,10359936,238,154)
{
WorkPoints=#13:doOpenConsole|16:doWriteToConsole|17:doReadFromConsole|13:doFreeConsole|
EventPoints=#7:onEvent|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|20:onEvent : THI_Event;|0:|54:Procedure doOpenConsole (var _Data:TData; Index:word);|57:Procedure doWriteToConsole (var _Data:TData; Index:word);|58:Procedure doReadFromConsole (var _Data:TData; Index:word);|54:Procedure doFreeConsole (var _Data:TData; Index:word);|0:|5: end;|0:|14:implementation|0:|67:Procedure THiAsmClass.doOpenConsole (var _Data:TData; Index:word);|14:var C : COORD;|19: R : SMALL_RECT;|23: hConsole : Integer;|5:Begin|16: AllocConsole;|47: hConsole := GetStdHandle(STD_OUTPUT_HANDLE);|15: R.Left := 0;|14: R.Top := 0;|17: R.Right := 80;|18: R.Bottom := 24;|31: C.X := R.Right + 1 - R.Left;|31: C.y := R.Bottom + 1 - R.Top;|43: SetConsoleScreenBufferSize(hConsole, C);|43: SetConsoleWindowInfo(hConsole, True, R);|22: SetConsoleCP(1251);|28: SetConsoleOutputCP(1251);|49: SetConsoleTitle( PChar( 'Консоль отладки' ) );|56: //SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN);|53: SetConsoleTextAttribute(hConsole,FOREGROUND_BLUE);|4:end;|70:Procedure THiAsmClass.doWriteToConsole (var _Data:TData; Index:word);|5:Begin|28: Writeln(ToString(_Data));|4:end;|71:Procedure THiAsmClass.doReadFromConsole (var _Data:TData; Index:word);|4: var|13: s: string;|5:Begin|19: Write('--> ');|28: Readln(s); |27: _hi_OnEvent(onEvent,s);|4:end;|67:Procedure THiAsmClass.doFreeConsole (var _Data:TData; Index:word);|5:Begin|15: FreeConsole;|4:end;|0:|4:end.|
link(onEvent,3647522:doAdd,[])
}
Add(Hub,8396709,126,147)
{
link(onEvent1,10359936:doOpenConsole,[(228,153)(228,160)])
link(onEvent2,12358217:doEnum,[(144,160)(144,167)])
}

карма: 15

0