Subversion Repositories Kolibri OS

Rev

Rev 7693 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. ==============================================================================
  2.  
  3.         Áèáëèîòåêà (KolibriOS)
  4.  
  5. ------------------------------------------------------------------------------
  6. MODULE Out - êîíñîëüíûé âûâîä
  7.  
  8.         PROCEDURE Open
  9.                 ôîðìàëüíî îòêðûâàåò êîíñîëüíûé âûâîä
  10.  
  11.         PROCEDURE Int(x, width: INTEGER)
  12.                 âûâîä öåëîãî ÷èñëà x;
  13.                 width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà
  14.  
  15.         PROCEDURE Real(x: REAL; width: INTEGER)
  16.                 âûâîä âåùåñòâåííîãî ÷èñëà x â ïëàâàþùåì ôîðìàòå;
  17.                 width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà
  18.  
  19.         PROCEDURE Char(x: CHAR)
  20.                 âûâîä ñèìâîëà x
  21.  
  22.         PROCEDURE FixReal(x: REAL; width, p: INTEGER)
  23.                 âûâîä âåùåñòâåííîãî ÷èñëà x â ôèêñèðîâàííîì ôîðìàòå;
  24.                 width - êîëè÷åñòâî çíàêîìåñò, èñïîëüçóåìûõ äëÿ âûâîäà;
  25.                 p - êîëè÷åñòâî çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè
  26.  
  27.         PROCEDURE Ln
  28.                 ïåðåõîä íà ñëåäóþùóþ ñòðîêó
  29.  
  30.         PROCEDURE String(s: ARRAY OF CHAR)
  31.                 âûâîä ñòðîêè s
  32.  
  33. ------------------------------------------------------------------------------
  34. MODULE In - êîíñîëüíûé ââîä
  35.  
  36.         VAR Done: BOOLEAN
  37.                 ïðèíèìàåò çíà÷åíèå TRUE â ñëó÷àå óñïåøíîãî âûïîëíåíèÿ
  38.                 îïåðàöèè ââîäà, èíà÷å FALSE
  39.  
  40.         PROCEDURE Open
  41.                 ôîðìàëüíî îòêðûâàåò êîíñîëüíûé ââîä,
  42.                 òàêæå ïðèñâàèâàåò ïåðåìåííîé Done çíà÷åíèå TRUE
  43.  
  44.         PROCEDURE Int(VAR x: INTEGER)
  45.                 ââîä ÷èñëà òèïà INTEGER
  46.  
  47.         PROCEDURE Char(VAR x: CHAR)
  48.                 ââîä ñèìâîëà
  49.  
  50.         PROCEDURE Real(VAR x: REAL)
  51.                 ââîä ÷èñëà òèïà REAL
  52.  
  53.         PROCEDURE String(VAR s: ARRAY OF CHAR)
  54.                 ââîä ñòðîêè
  55.  
  56.         PROCEDURE Ln
  57.                 îæèäàíèå íàæàòèÿ ENTER
  58.  
  59. ------------------------------------------------------------------------------
  60. MODULE Console - äîïîëíèòåëüíûå ïðîöåäóðû êîíñîëüíîãî âûâîäà
  61.  
  62.         CONST
  63.  
  64.         Ñëåäóþùèå êîíñòàíòû îïðåäåëÿþò öâåò êîíñîëüíîãî âûâîäà
  65.  
  66.                 Black = 0      Blue = 1           Green = 2
  67.                 Cyan = 3       Red = 4            Magenta = 5
  68.                 Brown = 6      LightGray = 7      DarkGray = 8
  69.                 LightBlue = 9  LightGreen = 10    LightCyan = 11
  70.                 LightRed = 12  LightMagenta = 13  Yellow = 14
  71.                 White = 15
  72.  
  73.         PROCEDURE Cls
  74.                 î÷èñòêà îêíà êîíñîëè
  75.  
  76.         PROCEDURE SetColor(FColor, BColor: INTEGER)
  77.                 óñòàíîâêà öâåòà êîíñîëüíîãî âûâîäà: FColor - öâåò òåêñòà,
  78.                 BColor - öâåò ôîíà, âîçìîæíûå çíà÷åíèÿ - âûøåïåðå÷èñëåííûå
  79.                 êîíñòàíòû
  80.  
  81.         PROCEDURE SetCursor(x, y: INTEGER)
  82.                 óñòàíîâêà êóðñîðà êîíñîëè â ïîçèöèþ (x, y)
  83.  
  84.         PROCEDURE GetCursor(VAR x, y: INTEGER)
  85.                 çàïèñûâàåò â ïàðàìåòðû òåêóùèå êîîðäèíàòû êóðñîðà êîíñîëè
  86.  
  87.         PROCEDURE GetCursorX(): INTEGER
  88.                 âîçâðàùàåò òåêóùóþ x-êîîðäèíàòó êóðñîðà êîíñîëè
  89.  
  90.         PROCEDURE GetCursorY(): INTEGER
  91.                 âîçâðàùàåò òåêóùóþ y-êîîðäèíàòó êóðñîðà êîíñîëè
  92.  
  93. ------------------------------------------------------------------------------
  94. MODULE ConsoleLib - îáåðòêà áèáëèîòåêè console.obj
  95.  
  96. ------------------------------------------------------------------------------
  97. MODULE Math - ìàòåìàòè÷åñêèå ôóíêöèè
  98.  
  99.         CONST
  100.  
  101.                 pi = 3.141592653589793E+00
  102.                 e  = 2.718281828459045E+00
  103.  
  104.  
  105.         PROCEDURE IsNan(x: REAL): BOOLEAN
  106.                 âîçâðàùàåò TRUE, åñëè x - íå ÷èñëî
  107.  
  108.         PROCEDURE IsInf(x: REAL): BOOLEAN
  109.                 âîçâðàùàåò TRUE, åñëè x - áåñêîíå÷íîñòü
  110.  
  111.         PROCEDURE sqrt(x: REAL): REAL
  112.                 êâàäðàòíûé êîðåíü x
  113.  
  114.         PROCEDURE exp(x: REAL): REAL
  115.                 ýêñïîíåíòà x
  116.  
  117.         PROCEDURE ln(x: REAL): REAL
  118.                 íàòóðàëüíûé ëîãàðèôì x
  119.  
  120.         PROCEDURE sin(x: REAL): REAL
  121.                 ñèíóñ x
  122.  
  123.         PROCEDURE cos(x: REAL): REAL
  124.                 êîñèíóñ x
  125.  
  126.         PROCEDURE tan(x: REAL): REAL
  127.                 òàíãåíñ x
  128.  
  129.         PROCEDURE arcsin(x: REAL): REAL
  130.                 àðêñèíóñ x
  131.  
  132.         PROCEDURE arccos(x: REAL): REAL
  133.                 àðêêîñèíóñ x
  134.  
  135.         PROCEDURE arctan(x: REAL): REAL
  136.                 àðêòàíãåíñ x
  137.  
  138.         PROCEDURE arctan2(y, x: REAL): REAL
  139.                 àðêòàíãåíñ y/x
  140.  
  141.         PROCEDURE power(base, exponent: REAL): REAL
  142.                 âîçâåäåíèå ÷èñëà base â ñòåïåíü exponent
  143.  
  144.         PROCEDURE log(base, x: REAL): REAL
  145.                 ëîãàðèôì x ïî îñíîâàíèþ base
  146.  
  147.         PROCEDURE sinh(x: REAL): REAL
  148.                 ãèïåðáîëè÷åñêèé ñèíóñ x
  149.  
  150.         PROCEDURE cosh(x: REAL): REAL
  151.                 ãèïåðáîëè÷åñêèé êîñèíóñ x
  152.  
  153.         PROCEDURE tanh(x: REAL): REAL
  154.                 ãèïåðáîëè÷åñêèé òàíãåíñ x
  155.  
  156.         PROCEDURE arsinh(x: REAL): REAL
  157.                 îáðàòíûé ãèïåðáîëè÷åñêèé ñèíóñ x
  158.  
  159.         PROCEDURE arcosh(x: REAL): REAL
  160.                 îáðàòíûé ãèïåðáîëè÷åñêèé êîñèíóñ x
  161.  
  162.         PROCEDURE artanh(x: REAL): REAL
  163.                 îáðàòíûé ãèïåðáîëè÷åñêèé òàíãåíñ x
  164.  
  165.         PROCEDURE round(x: REAL): REAL
  166.                 îêðóãëåíèå x äî áëèæàéøåãî öåëîãî
  167.  
  168.         PROCEDURE frac(x: REAL): REAL;
  169.                 äðîáíàÿ ÷àñòü ÷èñëà x
  170.  
  171.         PROCEDURE floor(x: REAL): REAL
  172.                 íàèáîëüøåå öåëîå ÷èñëî (ïðåäñòàâëåíèå êàê REAL),
  173.                 íå áîëüøå x: floor(1.2) = 1.0
  174.  
  175.         PROCEDURE ceil(x: REAL): REAL
  176.                 íàèìåíüøåå öåëîå ÷èñëî (ïðåäñòàâëåíèå êàê REAL),
  177.                 íå ìåíüøå x: ceil(1.2) = 2.0
  178.  
  179.         PROCEDURE sgn(x: REAL): INTEGER
  180.                 åñëè x > 0 âîçâðàùàåò 1
  181.                 åñëè x < 0 âîçâðàùàåò -1
  182.                 åñëè x = 0 âîçâðàùàåò 0
  183.  
  184.         PROCEDURE fact(n: INTEGER): REAL
  185.                 ôàêòîðèàë n
  186.  
  187. ------------------------------------------------------------------------------
  188. MODULE Debug - âûâîä íà äîñêó îòëàäêè
  189.         Èíòåðôåéñ êàê ìîäóëü Out
  190.  
  191.         PROCEDURE Open
  192.                 îòêðûâàåò äîñêó îòëàäêè
  193.  
  194. ------------------------------------------------------------------------------
  195. MODULE File - ðàáîòà ñ ôàéëîâîé ñèñòåìîé
  196.  
  197.         TYPE
  198.  
  199.                 FNAME = ARRAY 520 OF CHAR
  200.  
  201.                 FS = POINTER TO rFS
  202.  
  203.                 rFS = RECORD (* èíôîðìàöèîííàÿ ñòðóêòóðà ôàéëà *)
  204.                         subfunc, pos, hpos, bytes, buffer: INTEGER;
  205.                         name: FNAME
  206.                 END
  207.  
  208.                 FD = POINTER TO rFD
  209.  
  210.                 rFD = RECORD (* ñòðóêòóðà áëîêà äàííûõ âõîäà êàòàëîãà *)
  211.                         attr: INTEGER;
  212.                         ntyp: CHAR;
  213.                         reserved: ARRAY 3 OF CHAR;
  214.                         time_create, date_create,
  215.                         time_access, date_access,
  216.                         time_modif,  date_modif,
  217.                         size, hsize: INTEGER;
  218.                         name: FNAME
  219.                 END
  220.  
  221.         CONST
  222.  
  223.                 SEEK_BEG = 0
  224.                 SEEK_CUR = 1
  225.                 SEEK_END = 2
  226.  
  227.         PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER;
  228.                 Çàãðóæàåò â ïàìÿòü ôàéë ñ èìåíåì FName, çàïèñûâàåò â ïàðàìåòð
  229.                 size ðàçìåð ôàéëà, âîçâðàùàåò àäðåñ çàãðóæåííîãî ôàéëà
  230.                 èëè 0 (îøèáêà). Ïðè íåîáõîäèìîñòè, ðàñïàêîâûâàåò
  231.                 ôàéë (kunpack).
  232.  
  233.         PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN
  234.                 Çàïèñûâàåò ñòðóêòóðó áëîêà äàííûõ âõîäà êàòàëîãà äëÿ ôàéëà
  235.                 èëè ïàïêè ñ èìåíåì FName â ïàðàìåòð Info.
  236.                 Ïðè îøèáêå âîçâðàùàåò FALSE.
  237.  
  238.         PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
  239.                 âîçâðàùàåò TRUE, åñëè ôàéë ñ èìåíåì FName ñóùåñòâóåò
  240.  
  241.         PROCEDURE Close(VAR F: FS)
  242.                 îñâîáîæäàåò ïàìÿòü, âûäåëåííóþ äëÿ èíôîðìàöèîííîé ñòðóêòóðû
  243.                 ôàéëà F è ïðèñâàèâàåò F çíà÷åíèå NIL
  244.  
  245.         PROCEDURE Open(FName: ARRAY OF CHAR): FS
  246.                 âîçâðàùàåò óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà ñ
  247.                 èìåíåì FName, ïðè îøèáêå âîçâðàùàåò NIL
  248.  
  249.         PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
  250.                 óäàëÿåò ôàéë ñ èìåíåì FName, ïðè îøèáêå âîçâðàùàåò FALSE
  251.  
  252.         PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER
  253.                 óñòàíàâëèâàåò ïîçèöèþ ÷òåíèÿ-çàïèñè ôàéëà F íà Offset,
  254.                 îòíîñèòåëüíî Origin = (SEEK_BEG - íà÷àëî ôàéëà,
  255.                 SEEK_CUR - òåêóùàÿ ïîçèöèÿ, SEEK_END - êîíåö ôàéëà),
  256.                 âîçâðàùàåò ïîçèöèþ îòíîñèòåëüíî íà÷àëà ôàéëà, íàïðèìåð:
  257.                         Seek(F, 0, SEEK_END)
  258.                 óñòàíàâëèâàåò ïîçèöèþ íà êîíåö ôàéëà è âîçâðàùàåò äëèíó
  259.                 ôàéëà; ïðè îøèáêå âîçâðàùàåò -1
  260.  
  261.         PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER
  262.                 ×èòàåò äàííûå èç ôàéëà â ïàìÿòü. F - óêàçàòåëü íà
  263.                 èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè
  264.                 ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ ïðî÷èòàòü
  265.                 èç ôàéëà; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî ïðî÷èòàíî
  266.                 è ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  267.                 èíôîðìàöèîííîé ñòðóêòóðå F.
  268.  
  269.         PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER
  270.                 Çàïèñûâàåò äàííûå èç ïàìÿòè â ôàéë. F - óêàçàòåëü íà
  271.                 èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè
  272.                 ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ çàïèñàòü
  273.                 â ôàéë; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî çàïèñàíî è
  274.                 ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  275.                 èíôîðìàöèîííîé ñòðóêòóðå F.
  276.  
  277.         PROCEDURE Create(FName: ARRAY OF CHAR): FS
  278.                 ñîçäàåò íîâûé ôàéë ñ èìåíåì FName (ïîëíîå èìÿ), âîçâðàùàåò
  279.                 óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà,
  280.                 ïðè îøèáêå âîçâðàùàåò NIL
  281.  
  282.         PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
  283.                 ñîçäàåò ïàïêó ñ èìåíåì DirName, âñå ïðîìåæóòî÷íûå ïàïêè
  284.                 äîëæíû ñóùåñòâîâàòü, ïðè îøèáêå âîçâðàùàåò FALSE
  285.  
  286.         PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN
  287.                 óäàëÿåò ïóñòóþ ïàïêó ñ èìåíåì DirName,
  288.                 ïðè îøèáêå âîçâðàùàåò FALSE
  289.  
  290.         PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN
  291.                 âîçâðàùàåò TRUE, åñëè ïàïêà ñ èìåíåì DirName ñóùåñòâóåò
  292.  
  293. ------------------------------------------------------------------------------
  294. MODULE Read - ÷òåíèå îñíîâíûõ òèïîâ äàííûõ èç ôàéëà F
  295.  
  296.         Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè ÷òåíèÿ è
  297.         ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  298.         èíôîðìàöèîííîé ñòðóêòóðå F
  299.  
  300.         PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN
  301.  
  302.         PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN
  303.  
  304.         PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN
  305.  
  306.         PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN
  307.  
  308.         PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN
  309.  
  310.         PROCEDURE WChar(F: File.FS; VAR x: WCHAR): BOOLEAN
  311.  
  312. ------------------------------------------------------------------------------
  313. MODULE Write - çàïèñü îñíîâíûõ òèïîâ äàííûõ â ôàéë F
  314.  
  315.         Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè çàïèñè è
  316.         ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  317.         èíôîðìàöèîííîé ñòðóêòóðå F
  318.  
  319.         PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN
  320.  
  321.         PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN
  322.  
  323.         PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN
  324.  
  325.         PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN
  326.  
  327.         PROCEDURE Set(F: File.FS; x: SET): BOOLEAN
  328.  
  329.         PROCEDURE WChar(F: File.FS; x: WCHAR): BOOLEAN
  330.  
  331. ------------------------------------------------------------------------------
  332. MODULE DateTime - äàòà, âðåìÿ
  333.  
  334.         CONST ERR = -7.0E5
  335.  
  336.         PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER)
  337.                 çàïèñûâàåò â ïàðàìåòðû êîìïîíåíòû òåêóùåé ñèñòåìíîé äàòû è
  338.                 âðåìåíè
  339.  
  340.         PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): REAL
  341.                 âîçâðàùàåò äàòó, ïîëó÷åííóþ èç êîìïîíåíòîâ
  342.                 Year, Month, Day, Hour, Min, Sec;
  343.                 ïðè îøèáêå âîçâðàùàåò êîíñòàíòó ERR = -7.0E5
  344.  
  345.         PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
  346.                                 Hour, Min, Sec: INTEGER): BOOLEAN
  347.                 èçâëåêàåò êîìïîíåíòû
  348.                 Year, Month, Day, Hour, Min, Sec èç äàòû Date;
  349.                 ïðè îøèáêå âîçâðàùàåò FALSE
  350.  
  351. ------------------------------------------------------------------------------
  352. MODULE Args - ïàðàìåòðû ïðîãðàììû
  353.  
  354.         VAR argc: INTEGER
  355.                 êîëè÷åñòâî ïàðàìåòðîâ ïðîãðàììû, âêëþ÷àÿ èìÿ
  356.                 èñïîëíÿåìîãî ôàéëà
  357.  
  358.         PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
  359.                 çàïèñûâàåò â ñòðîêó s n-é ïàðàìåòð ïðîãðàììû,
  360.                 íóìåðàöèÿ ïàðàìåòðîâ îò 0 äî argc - 1,
  361.                 íóëåâîé ïàðàìåòð -- èìÿ èñïîëíÿåìîãî ôàéëà
  362.  
  363. ------------------------------------------------------------------------------
  364. MODULE KOSAPI
  365.  
  366.         PROCEDURE sysfunc1(arg1: INTEGER): INTEGER
  367.         PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER
  368.         ...
  369.         PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER
  370.                 Îáåðòêè äëÿ ôóíêöèé API ÿäðà KolibriOS.
  371.                 arg1 .. arg7 ñîîòâåòñòâóþò ðåãèñòðàì
  372.                         eax, ebx, ecx, edx, esi, edi, ebp;
  373.                 âîçâðàùàþò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà.
  374.  
  375.         PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER
  376.                 Îáåðòêà äëÿ ôóíêöèé API ÿäðà KolibriOS.
  377.                 arg1 - ðåãèñòð eax, arg2 - ðåãèñòð ebx,
  378.                 res2 - çíà÷åíèå ðåãèñòðà ebx ïîñëå ñèñòåìíîãî âûçîâà;
  379.                 âîçâðàùàåò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà.
  380.  
  381.         PROCEDURE malloc(size: INTEGER): INTEGER
  382.                 Âûäåëÿåò áëîê ïàìÿòè.
  383.                 size - ðàçìåð áëîêà â áàéòàõ,
  384.                 âîçâðàùàåò àäðåñ âûäåëåííîãî áëîêà
  385.  
  386.         PROCEDURE free(ptr: INTEGER): INTEGER
  387.                 Îñâîáîæäàåò ðàíåå âûäåëåííûé áëîê ïàìÿòè ñ àäðåñîì ptr,
  388.                 âîçâðàùàåò 0
  389.  
  390.         PROCEDURE realloc(ptr, size: INTEGER): INTEGER
  391.                 Ïåðåðàñïðåäåëÿåò áëîê ïàìÿòè,
  392.                 ptr - àäðåñ ðàíåå âûäåëåííîãî áëîêà,
  393.                 size - íîâûé ðàçìåð,
  394.                 âîçâðàùàåò óêàçàòåëü íà ïåðåðàñïðåäåëåííûé áëîê,
  395.                 0 ïðè îøèáêå
  396.  
  397.         PROCEDURE GetCommandLine(): INTEGER
  398.                 Âîçâðàùàåò àäðåñ ñòðîêè ïàðàìåòðîâ
  399.  
  400.         PROCEDURE GetName(): INTEGER
  401.                 Âîçâðàùàåò àäðåñ ñòðîêè ñ èìåíåì ïðîãðàììû
  402.  
  403.         PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER
  404.                 Çàãðóæàåò DLL ñ ïîëíûì èìåíåì name. Âîçâðàùàåò àäðåñ òàáëèöû
  405.                 ýêñïîðòà. Ïðè îøèáêå âîçâðàùàåò 0.
  406.  
  407.         PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER
  408.                 name - èìÿ ïðîöåäóðû
  409.                 lib - àäðåñ òàáëèöû ýêñïîðòà DLL
  410.                 Âîçâðàùàåò àäðåñ ïðîöåäóðû. Ïðè îøèáêå âîçâðàùàåò 0.
  411.  
  412. ------------------------------------------------------------------------------
  413. MODULE ColorDlg - ðàáîòà ñ äèàëîãîì "Color Dialog"
  414.  
  415.         TYPE
  416.  
  417.                 Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *)
  418.                     status: INTEGER   (* ñîñòîÿíèå äèàëîãà:
  419.                                          0 - ïîëüçîâàòåëü íàæàë Cancel
  420.                                          1 - ïîëüçîâàòåëü íàæàë OK
  421.                                          2 - äèàëîã îòêðûò       *)
  422.  
  423.                     color:  INTEGER   (* âûáðàííûé öâåò *)
  424.                 END
  425.  
  426.         PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog
  427.                 ñîçäàòü äèàëîã
  428.                 draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà
  429.                 (TYPE DRAW_WINDOW = PROCEDURE);
  430.                 ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  431.  
  432.         PROCEDURE Show(cd: Dialog)
  433.                 ïîêàçàòü äèàëîã
  434.                 cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå
  435.                 ïðîöåäóðîé Create
  436.  
  437.         PROCEDURE Destroy(VAR cd: Dialog)
  438.                 óíè÷òîæèòü äèàëîã
  439.                 cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  440.  
  441. ------------------------------------------------------------------------------
  442. MODULE OpenDlg - ðàáîòà ñ äèàëîãîì "Open Dialog"
  443.  
  444.         TYPE
  445.  
  446.                 Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *)
  447.                     status:   INTEGER  (* ñîñòîÿíèå äèàëîãà:
  448.                                           0 - ïîëüçîâàòåëü íàæàë Cancel
  449.                                           1 - ïîëüçîâàòåëü íàæàë OK
  450.                                           2 - äèàëîã îòêðûò       *)
  451.  
  452.                     FileName: ARRAY 4096 OF CHAR (* èìÿ âûáðàííîãî ôàéëà *)
  453.                     FilePath: ARRAY 4096 OF CHAR (* ïîëíîå èìÿ âûáðàííîãî
  454.                                                     ôàéëà           *)
  455.                 END
  456.  
  457.         PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path,
  458.                         filter: ARRAY OF CHAR): Dialog
  459.                 ñîçäàòü äèàëîã
  460.                 draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà
  461.                         (TYPE DRAW_WINDOW = PROCEDURE)
  462.                 type -  òèï äèàëîãà
  463.                         0 - îòêðûòü
  464.                         1 - ñîõðàíèòü
  465.                         2 - âûáðàòü ïàïêó
  466.                 def_path - ïóòü ïî óìîë÷àíèþ, ïàïêà def_path áóäåò îòêðûòà
  467.                         ïðè ïåðâîì çàïóñêå äèàëîãà
  468.                 filter - â ñòðîêå çàïèñàíî ïåðå÷èñëåíèå ðàñøèðåíèé ôàéëîâ,
  469.                         êîòîðûå áóäóò ïîêàçàíû â äèàëîãîâîì îêíå, ðàñøèðåíèÿ
  470.                         ðàçäåëÿþòñÿ ñèìâîëîì "|", íàïðèìåð: "ASM|TXT|INI"
  471.                 ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  472.  
  473.         PROCEDURE Show(od: Dialog; Width, Height: INTEGER)
  474.                 ïîêàçàòü äèàëîã
  475.                 od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå
  476.                      ïðîöåäóðîé Create
  477.                 Width è Height - øèðèíà è âûñîòà äèàëîãîâîãî îêíà
  478.  
  479.         PROCEDURE Destroy(VAR od: Dialog)
  480.                 óíè÷òîæèòü äèàëîã
  481.                 od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  482.  
  483. ------------------------------------------------------------------------------
  484. MODULE kfonts - ðàáîòà ñ kf-øðèôòàìè
  485.  
  486.         CONST
  487.  
  488.                 bold            =   1
  489.                 italic          =   2
  490.                 underline       =   4
  491.                 strike_through  =   8
  492.                 smoothing       =  16
  493.                 bpp32           =  32
  494.  
  495.         TYPE
  496.  
  497.                 TFont = POINTER TO TFont_desc (* óêàçàòåëü íà øðèôò *)
  498.  
  499.         PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont
  500.                 çàãðóçèòü øðèôò èç ôàéëà
  501.                 file_name   èìÿ kf-ôàéëà
  502.                 ðåç-ò:          óêàçàòåëü íà øðèôò/NIL (îøèáêà)
  503.  
  504.         PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN
  505.                 óñòàíîâèòü ðàçìåð øðèôòà
  506.                 Font        óêàçàòåëü íà øðèôò
  507.                 font_size   ðàçìåð øðèôòà
  508.                 ðåç-ò:          TRUE/FALSE (îøèáêà)
  509.  
  510.         PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN
  511.                 ïðîâåðèòü, åñòü ëè øðèôò, çàäàííîãî ðàçìåðà
  512.                 Font        óêàçàòåëü íà øðèôò
  513.                 font_size   ðàçìåð øðèôòà
  514.                 ðåç-ò:          TRUE/FALSE (øðèôòà íåò)
  515.  
  516.         PROCEDURE Destroy(VAR Font: TFont)
  517.                 âûãðóçèòü øðèôò, îñâîáîäèòü äèíàìè÷åñêóþ ïàìÿòü
  518.                 Font        óêàçàòåëü íà øðèôò
  519.                 Ïðèñâàèâàåò ïåðåìåííîé Font çíà÷åíèå NIL
  520.  
  521.         PROCEDURE TextHeight(Font: TFont): INTEGER
  522.                 ïîëó÷èòü âûñîòó ñòðîêè òåêñòà
  523.                 Font        óêàçàòåëü íà øðèôò
  524.                 ðåç-ò:          âûñîòà ñòðîêè òåêñòà â ïèêñåëÿõ
  525.  
  526.         PROCEDURE TextWidth(Font: TFont;
  527.                     str, length, params: INTEGER): INTEGER
  528.                 ïîëó÷èòü øèðèíó ñòðîêè òåêñòà
  529.                 Font        óêàçàòåëü íà øðèôò
  530.                 str         àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251
  531.                 length      êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà
  532.                             çàâåðøàåòñÿ íóëåì
  533.                 params      ïàðàìåòðû-ôëàãè ñì. íèæå
  534.                 ðåç-ò:          øèðèíà ñòðîêè òåêñòà â ïèêñåëÿõ
  535.  
  536.         PROCEDURE TextOut(Font: TFont;
  537.                     canvas, x, y, str, length, color, params: INTEGER)
  538.                 âûâåñòè òåêñò â áóôåð
  539.                 äëÿ âûâîäà áóôåðà â îêíî, èñïîëüçîâàòü ô.65 èëè
  540.                 ô.7 (åñëè áóôåð 24-áèòíûé)
  541.                 Font        óêàçàòåëü íà øðèôò
  542.                 canvas      àäðåñ ãðàôè÷åñêîãî áóôåðà
  543.                             ñòðóêòóðà áóôåðà:
  544.                               Xsize       dd
  545.                               Ysize       dd
  546.                               picture     rb  Xsize * Ysize * 4 (32 áèòà)
  547.                                               èëè Xsize * Ysize * 3 (24 áèòà)
  548.                 x, y        êîîðäèíàòû òåêñòà îòíîñèòåëüíî ëåâîãî âåðõíåãî
  549.                             óãëà áóôåðà
  550.                 str         àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251
  551.                 length      êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà
  552.                             çàâåðøàåòñÿ íóëåì
  553.                 color       öâåò òåêñòà 0x00RRGGBB
  554.                 params      ïàðàìåòðû-ôëàãè:
  555.                                1   æèðíûé
  556.                                2   êóðñèâ
  557.                                4   ïîä÷åðêíóòûé
  558.                                8   ïåðå÷åðêíóòûé
  559.                               16   ïðèìåíèòü ñãëàæèâàíèå
  560.                               32   âûâîä â 32-áèòíûé áóôåð
  561.                             âîçìîæíî èñïîëüçîâàíèå ôëàãîâ â ëþáûõ ñî÷åòàíèÿõ
  562. ------------------------------------------------------------------------------
  563. MODULE RasterWorks - îáåðòêà áèáëèîòåêè Rasterworks.obj
  564. ------------------------------------------------------------------------------
  565. MODULE libimg - îáåðòêà áèáëèîòåêè libimg.obj
  566. ------------------------------------------------------------------------------