forked from KolibriOS/kolibrios
566 lines
22 KiB
Plaintext
566 lines
22 KiB
Plaintext
==============================================================================
|
|
|
|
Áèáëèîòåêà (KolibriOS)
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Out - êîíñîëüíûé âûâîä
|
|
|
|
PROCEDURE Open
|
|
ôîðìàëüíî îòêðûâàåò êîíñîëüíûé âûâîä
|
|
|
|
PROCEDURE Int(x, width: INTEGER)
|
|
âûâîä öåëîãî ÷èñëà x;
|
|
width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà
|
|
|
|
PROCEDURE Real(x: REAL; width: INTEGER)
|
|
âûâîä âåùåñòâåííîãî ÷èñëà x â ïëàâàþùåì ôîðìàòå;
|
|
width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà
|
|
|
|
PROCEDURE Char(x: CHAR)
|
|
âûâîä ñèìâîëà x
|
|
|
|
PROCEDURE FixReal(x: REAL; width, p: INTEGER)
|
|
âûâîä âåùåñòâåííîãî ÷èñëà x â ôèêñèðîâàííîì ôîðìàòå;
|
|
width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà;
|
|
p - êîëè÷åñòâî çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè
|
|
|
|
PROCEDURE Ln
|
|
ïåðåõîä íà ñëåäóþùóþ ñòðîêó
|
|
|
|
PROCEDURE String(s: ARRAY OF CHAR)
|
|
âûâîä ñòðîêè s
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE In - êîíñîëüíûé ââîä
|
|
|
|
VAR Done: BOOLEAN
|
|
ïðèíèìàåò çíà÷åíèå TRUE â ñëó÷àå óñïåøíîãî âûïîëíåíèÿ
|
|
îïåðàöèè ââîäà, èíà÷å FALSE
|
|
|
|
PROCEDURE Open
|
|
ôîðìàëüíî îòêðûâàåò êîíñîëüíûé ââîä,
|
|
òàêæå ïðèñâàèâàåò ïåðåìåííîé Done çíà÷åíèå TRUE
|
|
|
|
PROCEDURE Int(VAR x: INTEGER)
|
|
ââîä ÷èñëà òèïà INTEGER
|
|
|
|
PROCEDURE Char(VAR x: CHAR)
|
|
ââîä ñèìâîëà
|
|
|
|
PROCEDURE Real(VAR x: REAL)
|
|
ââîä ÷èñëà òèïà REAL
|
|
|
|
PROCEDURE String(VAR s: ARRAY OF CHAR)
|
|
ââîä ñòðîêè
|
|
|
|
PROCEDURE Ln
|
|
îæèäàíèå íàæàòèÿ ENTER
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Console - äîïîëíèòåëüíûå ïðîöåäóðû êîíñîëüíîãî âûâîäà
|
|
|
|
CONST
|
|
|
|
Ñëåäóþùèå êîíñòàíòû îïðåäåëÿþò öâåò êîíñîëüíîãî âûâîäà
|
|
|
|
Black = 0 Blue = 1 Green = 2
|
|
Cyan = 3 Red = 4 Magenta = 5
|
|
Brown = 6 LightGray = 7 DarkGray = 8
|
|
LightBlue = 9 LightGreen = 10 LightCyan = 11
|
|
LightRed = 12 LightMagenta = 13 Yellow = 14
|
|
White = 15
|
|
|
|
PROCEDURE Cls
|
|
î÷èñòêà îêíà êîíñîëè
|
|
|
|
PROCEDURE SetColor(FColor, BColor: INTEGER)
|
|
óñòàíîâêà öâåòà êîíñîëüíîãî âûâîäà: FColor - öâåò òåêñòà,
|
|
BColor - öâåò ôîíà, âîçìîæíûå çíà÷åíèÿ - âûøåïåðå÷èñëåííûå
|
|
êîíñòàíòû
|
|
|
|
PROCEDURE SetCursor(x, y: INTEGER)
|
|
óñòàíîâêà êóðñîðà êîíñîëè â ïîçèöèþ (x, y)
|
|
|
|
PROCEDURE GetCursor(VAR x, y: INTEGER)
|
|
çàïèñûâàåò â ïàðàìåòðû òåêóùèå êîîðäèíàòû êóðñîðà êîíñîëè
|
|
|
|
PROCEDURE GetCursorX(): INTEGER
|
|
âîçâðàùàåò òåêóùóþ x-êîîðäèíàòó êóðñîðà êîíñîëè
|
|
|
|
PROCEDURE GetCursorY(): INTEGER
|
|
âîçâðàùàåò òåêóùóþ y-êîîðäèíàòó êóðñîðà êîíñîëè
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE ConsoleLib - îáåðòêà áèáëèîòåêè console.obj
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Math - ìàòåìàòè÷åñêèå ôóíêöèè
|
|
|
|
CONST
|
|
|
|
pi = 3.141592653589793E+00
|
|
e = 2.718281828459045E+00
|
|
|
|
|
|
PROCEDURE IsNan(x: REAL): BOOLEAN
|
|
âîçâðàùàåò TRUE, åñëè x - íå ÷èñëî
|
|
|
|
PROCEDURE IsInf(x: REAL): BOOLEAN
|
|
âîçâðàùàåò TRUE, åñëè x - áåñêîíå÷íîñòü
|
|
|
|
PROCEDURE sqrt(x: REAL): REAL
|
|
êâàäðàòíûé êîðåíü x
|
|
|
|
PROCEDURE exp(x: REAL): REAL
|
|
ýêñïîíåíòà x
|
|
|
|
PROCEDURE ln(x: REAL): REAL
|
|
íàòóðàëüíûé ëîãàðèôì x
|
|
|
|
PROCEDURE sin(x: REAL): REAL
|
|
ñèíóñ x
|
|
|
|
PROCEDURE cos(x: REAL): REAL
|
|
êîñèíóñ x
|
|
|
|
PROCEDURE tan(x: REAL): REAL
|
|
òàíãåíñ x
|
|
|
|
PROCEDURE arcsin(x: REAL): REAL
|
|
àðêñèíóñ x
|
|
|
|
PROCEDURE arccos(x: REAL): REAL
|
|
àðêêîñèíóñ x
|
|
|
|
PROCEDURE arctan(x: REAL): REAL
|
|
àðêòàíãåíñ x
|
|
|
|
PROCEDURE arctan2(y, x: REAL): REAL
|
|
àðêòàíãåíñ y/x
|
|
|
|
PROCEDURE power(base, exponent: REAL): REAL
|
|
âîçâåäåíèå ÷èñëà base â ñòåïåíü exponent
|
|
|
|
PROCEDURE log(base, x: REAL): REAL
|
|
ëîãàðèôì x ïî îñíîâàíèþ base
|
|
|
|
PROCEDURE sinh(x: REAL): REAL
|
|
ãèïåðáîëè÷åñêèé ñèíóñ x
|
|
|
|
PROCEDURE cosh(x: REAL): REAL
|
|
ãèïåðáîëè÷åñêèé êîñèíóñ x
|
|
|
|
PROCEDURE tanh(x: REAL): REAL
|
|
ãèïåðáîëè÷åñêèé òàíãåíñ x
|
|
|
|
PROCEDURE arsinh(x: REAL): REAL
|
|
îáðàòíûé ãèïåðáîëè÷åñêèé ñèíóñ x
|
|
|
|
PROCEDURE arcosh(x: REAL): REAL
|
|
îáðàòíûé ãèïåðáîëè÷åñêèé êîñèíóñ x
|
|
|
|
PROCEDURE artanh(x: REAL): REAL
|
|
îáðàòíûé ãèïåðáîëè÷åñêèé òàíãåíñ x
|
|
|
|
PROCEDURE round(x: REAL): REAL
|
|
îêðóãëåíèå x äî áëèæàéøåãî öåëîãî
|
|
|
|
PROCEDURE frac(x: REAL): REAL;
|
|
äðîáíàÿ ÷àñòü ÷èñëà x
|
|
|
|
PROCEDURE floor(x: REAL): REAL
|
|
íàèáîëüøåå öåëîå ÷èñëî (ïðåäñòàâëåíèå êàê REAL),
|
|
íå áîëüøå x: floor(1.2) = 1.0
|
|
|
|
PROCEDURE ceil(x: REAL): REAL
|
|
íàèìåíüøåå öåëîå ÷èñëî (ïðåäñòàâëåíèå êàê REAL),
|
|
íå ìåíüøå x: ceil(1.2) = 2.0
|
|
|
|
PROCEDURE sgn(x: REAL): INTEGER
|
|
åñëè x > 0 âîçâðàùàåò 1
|
|
åñëè x < 0 âîçâðàùàåò -1
|
|
åñëè x = 0 âîçâðàùàåò 0
|
|
|
|
PROCEDURE fact(n: INTEGER): REAL
|
|
ôàêòîðèàë n
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Debug - âûâîä íà äîñêó îòëàäêè
|
|
Èíòåðôåéñ êàê ìîäóëü Out
|
|
|
|
PROCEDURE Open
|
|
îòêðûâàåò äîñêó îòëàäêè
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE File - ðàáîòà ñ ôàéëîâîé ñèñòåìîé
|
|
|
|
TYPE
|
|
|
|
FNAME = ARRAY 520 OF CHAR
|
|
|
|
FS = POINTER TO rFS
|
|
|
|
rFS = RECORD (* èíôîðìàöèîííàÿ ñòðóêòóðà ôàéëà *)
|
|
subfunc, pos, hpos, bytes, buffer: INTEGER;
|
|
name: FNAME
|
|
END
|
|
|
|
FD = POINTER TO rFD
|
|
|
|
rFD = RECORD (* ñòðóêòóðà áëîêà äàííûõ âõîäà êàòàëîãà *)
|
|
attr: INTEGER;
|
|
ntyp: CHAR;
|
|
reserved: ARRAY 3 OF CHAR;
|
|
time_create, date_create,
|
|
time_access, date_access,
|
|
time_modif, date_modif,
|
|
size, hsize: INTEGER;
|
|
name: FNAME
|
|
END
|
|
|
|
CONST
|
|
|
|
SEEK_BEG = 0
|
|
SEEK_CUR = 1
|
|
SEEK_END = 2
|
|
|
|
PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER;
|
|
Çàãðóæàåò â ïàìÿòü ôàéë ñ èìåíåì FName, çàïèñûâàåò â ïàðàìåòð
|
|
size ðàçìåð ôàéëà, âîçâðàùàåò àäðåñ çàãðóæåííîãî ôàéëà
|
|
èëè 0 (îøèáêà). Ïðè íåîáõîäèìîñòè, ðàñïàêîâûâàåò
|
|
ôàéë (kunpack).
|
|
|
|
PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN
|
|
Çàïèñûâàåò ñòðóêòóðó áëîêà äàííûõ âõîäà êàòàëîãà äëÿ ôàéëà
|
|
èëè ïàïêè ñ èìåíåì FName â ïàðàìåòð Info.
|
|
Ïðè îøèáêå âîçâðàùàåò FALSE.
|
|
|
|
PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
|
|
âîçâðàùàåò TRUE, åñëè ôàéë ñ èìåíåì FName ñóùåñòâóåò
|
|
|
|
PROCEDURE Close(VAR F: FS)
|
|
îñâîáîæäàåò ïàìÿòü, âûäåëåííóþ äëÿ èíôîðìàöèîííîé ñòðóêòóðû
|
|
ôàéëà F è ïðèñâàèâàåò F çíà÷åíèå NIL
|
|
|
|
PROCEDURE Open(FName: ARRAY OF CHAR): FS
|
|
âîçâðàùàåò óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà ñ
|
|
èìåíåì FName, ïðè îøèáêå âîçâðàùàåò NIL
|
|
|
|
PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
|
|
óäàëÿåò ôàéë ñ èìåíåì FName, ïðè îøèáêå âîçâðàùàåò FALSE
|
|
|
|
PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER
|
|
óñòàíàâëèâàåò ïîçèöèþ ÷òåíèÿ-çàïèñè ôàéëà F íà Offset,
|
|
îòíîñèòåëüíî Origin = (SEEK_BEG - íà÷àëî ôàéëà,
|
|
SEEK_CUR - òåêóùàÿ ïîçèöèÿ, SEEK_END - êîíåö ôàéëà),
|
|
âîçâðàùàåò ïîçèöèþ îòíîñèòåëüíî íà÷àëà ôàéëà, íàïðèìåð:
|
|
Seek(F, 0, SEEK_END)
|
|
óñòàíàâëèâàåò ïîçèöèþ íà êîíåö ôàéëà è âîçâðàùàåò äëèíó
|
|
ôàéëà; ïðè îøèáêå âîçâðàùàåò -1
|
|
|
|
PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER
|
|
×èòàåò äàííûå èç ôàéëà â ïàìÿòü. F - óêàçàòåëü íà
|
|
èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè
|
|
ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ ïðî÷èòàòü
|
|
èç ôàéëà; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî ïðî÷èòàíî
|
|
è ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â
|
|
èíôîðìàöèîííîé ñòðóêòóðå F.
|
|
|
|
PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER
|
|
Çàïèñûâàåò äàííûå èç ïàìÿòè â ôàéë. F - óêàçàòåëü íà
|
|
èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè
|
|
ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ çàïèñàòü
|
|
â ôàéë; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî çàïèñàíî è
|
|
ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â
|
|
èíôîðìàöèîííîé ñòðóêòóðå F.
|
|
|
|
PROCEDURE Create(FName: ARRAY OF CHAR): FS
|
|
ñîçäàåò íîâûé ôàéë ñ èìåíåì FName (ïîëíîå èìÿ), âîçâðàùàåò
|
|
óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà,
|
|
ïðè îøèáêå âîçâðàùàåò NIL
|
|
|
|
PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
|
|
ñîçäàåò ïàïêó ñ èìåíåì DirName, âñå ïðîìåæóòî÷íûå ïàïêè
|
|
äîëæíû ñóùåñòâîâàòü, ïðè îøèáêå âîçâðàùàåò FALSE
|
|
|
|
PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN
|
|
óäàëÿåò ïóñòóþ ïàïêó ñ èìåíåì DirName,
|
|
ïðè îøèáêå âîçâðàùàåò FALSE
|
|
|
|
PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN
|
|
âîçâðàùàåò TRUE, åñëè ïàïêà ñ èìåíåì DirName ñóùåñòâóåò
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Read - ÷òåíèå îñíîâíûõ òèïîâ äàííûõ èç ôàéëà F
|
|
|
|
Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè ÷òåíèÿ è
|
|
ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â
|
|
èíôîðìàöèîííîé ñòðóêòóðå F
|
|
|
|
PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN
|
|
|
|
PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN
|
|
|
|
PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN
|
|
|
|
PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN
|
|
|
|
PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN
|
|
|
|
PROCEDURE WChar(F: File.FS; VAR x: WCHAR): BOOLEAN
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Write - çàïèñü îñíîâíûõ òèïîâ äàííûõ â ôàéë F
|
|
|
|
Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè çàïèñè è
|
|
ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â
|
|
èíôîðìàöèîííîé ñòðóêòóðå F
|
|
|
|
PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN
|
|
|
|
PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN
|
|
|
|
PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN
|
|
|
|
PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN
|
|
|
|
PROCEDURE Set(F: File.FS; x: SET): BOOLEAN
|
|
|
|
PROCEDURE WChar(F: File.FS; x: WCHAR): BOOLEAN
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE DateTime - äàòà, âðåìÿ
|
|
|
|
CONST ERR = -7.0E5
|
|
|
|
PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER)
|
|
çàïèñûâàåò â ïàðàìåòðû êîìïîíåíòû òåêóùåé ñèñòåìíîé äàòû è
|
|
âðåìåíè
|
|
|
|
PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): REAL
|
|
âîçâðàùàåò äàòó, ïîëó÷åííóþ èç êîìïîíåíòîâ
|
|
Year, Month, Day, Hour, Min, Sec;
|
|
ïðè îøèáêå âîçâðàùàåò êîíñòàíòó ERR = -7.0E5
|
|
|
|
PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
|
|
Hour, Min, Sec: INTEGER): BOOLEAN
|
|
èçâëåêàåò êîìïîíåíòû
|
|
Year, Month, Day, Hour, Min, Sec èç äàòû Date;
|
|
ïðè îøèáêå âîçâðàùàåò FALSE
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE Args - ïàðàìåòðû ïðîãðàììû
|
|
|
|
VAR argc: INTEGER
|
|
êîëè÷åñòâî ïàðàìåòðîâ ïðîãðàììû, âêëþ÷àÿ èìÿ
|
|
èñïîëíÿåìîãî ôàéëà
|
|
|
|
PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
|
|
çàïèñûâàåò â ñòðîêó s n-é ïàðàìåòð ïðîãðàììû,
|
|
íóìåðàöèÿ ïàðàìåòðîâ îò 0 äî argc - 1,
|
|
íóëåâîé ïàðàìåòð -- èìÿ èñïîëíÿåìîãî ôàéëà
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE KOSAPI
|
|
|
|
PROCEDURE sysfunc1(arg1: INTEGER): INTEGER
|
|
PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER
|
|
...
|
|
PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER
|
|
Îáåðòêè äëÿ ôóíêöèé API ÿäðà KolibriOS.
|
|
arg1 .. arg7 ñîîòâåòñòâóþò ðåãèñòðàì
|
|
eax, ebx, ecx, edx, esi, edi, ebp;
|
|
âîçâðàùàþò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà.
|
|
|
|
PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER
|
|
Îáåðòêà äëÿ ôóíêöèé API ÿäðà KolibriOS.
|
|
arg1 - ðåãèñòð eax, arg2 - ðåãèñòð ebx,
|
|
res2 - çíà÷åíèå ðåãèñòðà ebx ïîñëå ñèñòåìíîãî âûçîâà;
|
|
âîçâðàùàåò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà.
|
|
|
|
PROCEDURE malloc(size: INTEGER): INTEGER
|
|
Âûäåëÿåò áëîê ïàìÿòè.
|
|
size - ðàçìåð áëîêà â áàéòàõ,
|
|
âîçâðàùàåò àäðåñ âûäåëåííîãî áëîêà
|
|
|
|
PROCEDURE free(ptr: INTEGER): INTEGER
|
|
Îñâîáîæäàåò ðàíåå âûäåëåííûé áëîê ïàìÿòè ñ àäðåñîì ptr,
|
|
âîçâðàùàåò 0
|
|
|
|
PROCEDURE realloc(ptr, size: INTEGER): INTEGER
|
|
Ïåðåðàñïðåäåëÿåò áëîê ïàìÿòè,
|
|
ptr - àäðåñ ðàíåå âûäåëåííîãî áëîêà,
|
|
size - íîâûé ðàçìåð,
|
|
âîçâðàùàåò óêàçàòåëü íà ïåðåðàñïðåäåëåííûé áëîê,
|
|
0 ïðè îøèáêå
|
|
|
|
PROCEDURE GetCommandLine(): INTEGER
|
|
Âîçâðàùàåò àäðåñ ñòðîêè ïàðàìåòðîâ
|
|
|
|
PROCEDURE GetName(): INTEGER
|
|
Âîçâðàùàåò àäðåñ ñòðîêè ñ èìåíåì ïðîãðàììû
|
|
|
|
PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER
|
|
Çàãðóæàåò DLL ñ ïîëíûì èìåíåì name. Âîçâðàùàåò àäðåñ òàáëèöû
|
|
ýêñïîðòà. Ïðè îøèáêå âîçâðàùàåò 0.
|
|
|
|
PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER
|
|
name - èìÿ ïðîöåäóðû
|
|
lib - àäðåñ òàáëèöû ýêñïîðòà DLL
|
|
Âîçâðàùàåò àäðåñ ïðîöåäóðû. Ïðè îøèáêå âîçâðàùàåò 0.
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE ColorDlg - ðàáîòà ñ äèàëîãîì "Color Dialog"
|
|
|
|
TYPE
|
|
|
|
Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *)
|
|
status: INTEGER (* ñîñòîÿíèå äèàëîãà:
|
|
0 - ïîëüçîâàòåëü íàæàë Cancel
|
|
1 - ïîëüçîâàòåëü íàæàë OK
|
|
2 - äèàëîã îòêðûò *)
|
|
|
|
color: INTEGER (* âûáðàííûé öâåò *)
|
|
END
|
|
|
|
PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog
|
|
ñîçäàòü äèàëîã
|
|
draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà
|
|
(TYPE DRAW_WINDOW = PROCEDURE);
|
|
ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà
|
|
|
|
PROCEDURE Show(cd: Dialog)
|
|
ïîêàçàòü äèàëîã
|
|
cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå
|
|
ïðîöåäóðîé Create
|
|
|
|
PROCEDURE Destroy(VAR cd: Dialog)
|
|
óíè÷òîæèòü äèàëîã
|
|
cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE OpenDlg - ðàáîòà ñ äèàëîãîì "Open Dialog"
|
|
|
|
TYPE
|
|
|
|
Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *)
|
|
status: INTEGER (* ñîñòîÿíèå äèàëîãà:
|
|
0 - ïîëüçîâàòåëü íàæàë Cancel
|
|
1 - ïîëüçîâàòåëü íàæàë OK
|
|
2 - äèàëîã îòêðûò *)
|
|
|
|
FileName: ARRAY 4096 OF CHAR (* èìÿ âûáðàííîãî ôàéëà *)
|
|
FilePath: ARRAY 4096 OF CHAR (* ïîëíîå èìÿ âûáðàííîãî
|
|
ôàéëà *)
|
|
END
|
|
|
|
PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path,
|
|
filter: ARRAY OF CHAR): Dialog
|
|
ñîçäàòü äèàëîã
|
|
draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà
|
|
(TYPE DRAW_WINDOW = PROCEDURE)
|
|
type - òèï äèàëîãà
|
|
0 - îòêðûòü
|
|
1 - ñîõðàíèòü
|
|
2 - âûáðàòü ïàïêó
|
|
def_path - ïóòü ïî óìîë÷àíèþ, ïàïêà def_path áóäåò îòêðûòà
|
|
ïðè ïåðâîì çàïóñêå äèàëîãà
|
|
filter - â ñòðîêå çàïèñàíî ïåðå÷èñëåíèå ðàñøèðåíèé ôàéëîâ,
|
|
êîòîðûå áóäóò ïîêàçàíû â äèàëîãîâîì îêíå, ðàñøèðåíèÿ
|
|
ðàçäåëÿþòñÿ ñèìâîëîì "|", íàïðèìåð: "ASM|TXT|INI"
|
|
ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà
|
|
|
|
PROCEDURE Show(od: Dialog; Width, Height: INTEGER)
|
|
ïîêàçàòü äèàëîã
|
|
od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå
|
|
ïðîöåäóðîé Create
|
|
Width è Height - øèðèíà è âûñîòà äèàëîãîâîãî îêíà
|
|
|
|
PROCEDURE Destroy(VAR od: Dialog)
|
|
óíè÷òîæèòü äèàëîã
|
|
od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà
|
|
|
|
------------------------------------------------------------------------------
|
|
MODULE kfonts - ðàáîòà ñ kf-øðèôòàìè
|
|
|
|
CONST
|
|
|
|
bold = 1
|
|
italic = 2
|
|
underline = 4
|
|
strike_through = 8
|
|
smoothing = 16
|
|
bpp32 = 32
|
|
|
|
TYPE
|
|
|
|
TFont = POINTER TO TFont_desc (* óêàçàòåëü íà øðèôò *)
|
|
|
|
PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont
|
|
çàãðóçèòü øðèôò èç ôàéëà
|
|
file_name èìÿ kf-ôàéëà
|
|
ðåç-ò: óêàçàòåëü íà øðèôò/NIL (îøèáêà)
|
|
|
|
PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN
|
|
óñòàíîâèòü ðàçìåð øðèôòà
|
|
Font óêàçàòåëü íà øðèôò
|
|
font_size ðàçìåð øðèôòà
|
|
ðåç-ò: TRUE/FALSE (îøèáêà)
|
|
|
|
PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN
|
|
ïðîâåðèòü, åñòü ëè øðèôò, çàäàííîãî ðàçìåðà
|
|
Font óêàçàòåëü íà øðèôò
|
|
font_size ðàçìåð øðèôòà
|
|
ðåç-ò: TRUE/FALSE (øðèôòà íåò)
|
|
|
|
PROCEDURE Destroy(VAR Font: TFont)
|
|
âûãðóçèòü øðèôò, îñâîáîäèòü äèíàìè÷åñêóþ ïàìÿòü
|
|
Font óêàçàòåëü íà øðèôò
|
|
Ïðèñâàèâàåò ïåðåìåííîé Font çíà÷åíèå NIL
|
|
|
|
PROCEDURE TextHeight(Font: TFont): INTEGER
|
|
ïîëó÷èòü âûñîòó ñòðîêè òåêñòà
|
|
Font óêàçàòåëü íà øðèôò
|
|
ðåç-ò: âûñîòà ñòðîêè òåêñòà â ïèêñåëÿõ
|
|
|
|
PROCEDURE TextWidth(Font: TFont;
|
|
str, length, params: INTEGER): INTEGER
|
|
ïîëó÷èòü øèðèíó ñòðîêè òåêñòà
|
|
Font óêàçàòåëü íà øðèôò
|
|
str àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251
|
|
length êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà
|
|
çàâåðøàåòñÿ íóëåì
|
|
params ïàðàìåòðû-ôëàãè ñì. íèæå
|
|
ðåç-ò: øèðèíà ñòðîêè òåêñòà â ïèêñåëÿõ
|
|
|
|
PROCEDURE TextOut(Font: TFont;
|
|
canvas, x, y, str, length, color, params: INTEGER)
|
|
âûâåñòè òåêñò â áóôåð
|
|
äëÿ âûâîäà áóôåðà â îêíî, èñïîëüçîâàòü ô.65 èëè
|
|
ô.7 (åñëè áóôåð 24-áèòíûé)
|
|
Font óêàçàòåëü íà øðèôò
|
|
canvas àäðåñ ãðàôè÷åñêîãî áóôåðà
|
|
ñòðóêòóðà áóôåðà:
|
|
Xsize dd
|
|
Ysize dd
|
|
picture rb Xsize * Ysize * 4 (32 áèòà)
|
|
èëè Xsize * Ysize * 3 (24 áèòà)
|
|
x, y êîîðäèíàòû òåêñòà îòíîñèòåëüíî ëåâîãî âåðõíåãî
|
|
óãëà áóôåðà
|
|
str àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251
|
|
length êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà
|
|
çàâåðøàåòñÿ íóëåì
|
|
color öâåò òåêñòà 0x00RRGGBB
|
|
params ïàðàìåòðû-ôëàãè:
|
|
1 æèðíûé
|
|
2 êóðñèâ
|
|
4 ïîä÷åðêíóòûé
|
|
8 ïåðå÷åðêíóòûé
|
|
16 ïðèìåíèòü ñãëàæèâàíèå
|
|
32 âûâîä â 32-áèòíûé áóôåð
|
|
âîçìîæíî èñïîëüçîâàíèå ôëàãîâ â ëþáûõ ñî÷åòàíèÿõ
|
|
------------------------------------------------------------------------------
|
|
MODULE RasterWorks - îáåðòêà áèáëèîòåêè Rasterworks.obj
|
|
------------------------------------------------------------------------------
|
|
MODULE libimg - îáåðòêà áèáëèîòåêè libimg.obj
|
|
------------------------------------------------------------------------------ |