Subversion Repositories Kolibri OS

Rev

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.141592653589793D+00
  102.                 e  = 2.718281828459045D+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 arcsinh(x: REAL): REAL
  157.                 îáðàòíûé ãèïåðáîëè÷åñêèé ñèíóñ x
  158.  
  159.         PROCEDURE arccosh(x: REAL): REAL
  160.                 îáðàòíûé ãèïåðáîëè÷åñêèé êîñèíóñ x
  161.  
  162.         PROCEDURE arctanh(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. ------------------------------------------------------------------------------
  185. MODULE Debug - âûâîä íà äîñêó îòëàäêè
  186.         Èíòåðôåéñ êàê ìîäóëü Out
  187.  
  188.         PROCEDURE Open
  189.                 îòêðûâàåò äîñêó îòëàäêè
  190.  
  191. ------------------------------------------------------------------------------
  192. MODULE File - ðàáîòà ñ ôàéëîâîé ñèñòåìîé
  193.  
  194.         TYPE
  195.  
  196.                 FNAME = ARRAY 520 OF CHAR
  197.  
  198.                 FS = POINTER TO rFS
  199.  
  200.                 rFS = RECORD (* èíôîðìàöèîííàÿ ñòðóêòóðà ôàéëà *)
  201.                         subfunc, pos, hpos, bytes, buffer: INTEGER;
  202.                         name: FNAME
  203.                 END
  204.  
  205.                 FD = POINTER TO rFD
  206.  
  207.                 rFD = RECORD (* ñòðóêòóðà áëîêà äàííûõ âõîäà êàòàëîãà *)
  208.                         attr: INTEGER;
  209.                         ntyp: CHAR;
  210.                         reserved: ARRAY 3 OF CHAR;
  211.                         time_create, date_create,
  212.                         time_access, date_access,
  213.                         time_modif,  date_modif,
  214.                         size, hsize: INTEGER;
  215.                         name: FNAME
  216.                 END
  217.  
  218.         CONST
  219.  
  220.                 SEEK_BEG = 0
  221.                 SEEK_CUR = 1
  222.                 SEEK_END = 2
  223.  
  224.         PROCEDURE Load(FName: ARRAY OF CHAR; VAR size: INTEGER): INTEGER;
  225.                 Çàãðóæàåò â ïàìÿòü ôàéë ñ èìåíåì FName, çàïèñûâàåò â ïàðàìåòð
  226.                 size ðàçìåð ôàéëà, âîçâðàùàåò àäðåñ çàãðóæåííîãî ôàéëà
  227.                 èëè 0 (îøèáêà). Ïðè íåîáõîäèìîñòè, ðàñïàêîâûâàåò
  228.                 ôàéë (kunpack).
  229.  
  230.         PROCEDURE GetFileInfo(FName: ARRAY OF CHAR; VAR Info: rFD): BOOLEAN
  231.                 Çàïèñûâàåò ñòðóêòóðó áëîêà äàííûõ âõîäà êàòàëîãà äëÿ ôàéëà
  232.                 èëè ïàïêè ñ èìåíåì FName â ïàðàìåòð Info.
  233.                 Ïðè îøèáêå âîçâðàùàåò FALSE.
  234.  
  235.         PROCEDURE Exists(FName: ARRAY OF CHAR): BOOLEAN
  236.                 âîçâðàùàåò TRUE, åñëè ôàéë ñ èìåíåì FName ñóùåñòâóåò
  237.  
  238.         PROCEDURE Close(VAR F: FS)
  239.                 îñâîáîæäàåò ïàìÿòü, âûäåëåííóþ äëÿ èíôîðìàöèîííîé ñòðóêòóðû
  240.                 ôàéëà F è ïðèñâàèâàåò F çíà÷åíèå NIL
  241.  
  242.         PROCEDURE Open(FName: ARRAY OF CHAR): FS
  243.                 âîçâðàùàåò óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà ñ
  244.                 èìåíåì FName, ïðè îøèáêå âîçâðàùàåò NIL
  245.  
  246.         PROCEDURE Delete(FName: ARRAY OF CHAR): BOOLEAN
  247.                 óäàëÿåò ôàéë ñ èìåíåì FName, ïðè îøèáêå âîçâðàùàåò FALSE
  248.  
  249.         PROCEDURE Seek(F: FS; Offset, Origin: INTEGER): INTEGER
  250.                 óñòàíàâëèâàåò ïîçèöèþ ÷òåíèÿ-çàïèñè ôàéëà F íà Offset,
  251.                 îòíîñèòåëüíî Origin = (SEEK_BEG - íà÷àëî ôàéëà,
  252.                 SEEK_CUR - òåêóùàÿ ïîçèöèÿ, SEEK_END - êîíåö ôàéëà),
  253.                 âîçâðàùàåò ïîçèöèþ îòíîñèòåëüíî íà÷àëà ôàéëà, íàïðèìåð:
  254.                         Seek(F, 0, SEEK_END)
  255.                 óñòàíàâëèâàåò ïîçèöèþ íà êîíåö ôàéëà è âîçâðàùàåò äëèíó
  256.                 ôàéëà; ïðè îøèáêå âîçâðàùàåò -1
  257.  
  258.         PROCEDURE Read(F: FS; Buffer, Count: INTEGER): INTEGER
  259.                 ×èòàåò äàííûå èç ôàéëà â ïàìÿòü. F - óêàçàòåëü íà
  260.                 èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè
  261.                 ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ ïðî÷èòàòü
  262.                 èç ôàéëà; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî ïðî÷èòàíî
  263.                 è ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  264.                 èíôîðìàöèîííîé ñòðóêòóðå F.
  265.  
  266.         PROCEDURE Write(F: FS; Buffer, Count: INTEGER): INTEGER
  267.                 Çàïèñûâàåò äàííûå èç ïàìÿòè â ôàéë. F - óêàçàòåëü íà
  268.                 èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà, Buffer - àäðåñ îáëàñòè
  269.                 ïàìÿòè, Count - êîëè÷åñòâî áàéò, êîòîðîå òðåáóåòñÿ çàïèñàòü
  270.                 â ôàéë; âîçâðàùàåò êîëè÷åñòâî áàéò, êîòîðîå áûëî çàïèñàíî è
  271.                 ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿåò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  272.                 èíôîðìàöèîííîé ñòðóêòóðå F.
  273.  
  274.         PROCEDURE Create(FName: ARRAY OF CHAR): FS
  275.                 ñîçäàåò íîâûé ôàéë ñ èìåíåì FName (ïîëíîå èìÿ), âîçâðàùàåò
  276.                 óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó ôàéëà,
  277.                 ïðè îøèáêå âîçâðàùàåò NIL
  278.  
  279.         PROCEDURE CreateDir(DirName: ARRAY OF CHAR): BOOLEAN
  280.                 ñîçäàåò ïàïêó ñ èìåíåì DirName, âñå ïðîìåæóòî÷íûå ïàïêè
  281.                 äîëæíû ñóùåñòâîâàòü, ïðè îøèáêå âîçâðàùàåò FALSE
  282.  
  283.         PROCEDURE DeleteDir(DirName: ARRAY OF CHAR): BOOLEAN
  284.                 óäàëÿåò ïóñòóþ ïàïêó ñ èìåíåì DirName,
  285.                 ïðè îøèáêå âîçâðàùàåò FALSE
  286.  
  287.         PROCEDURE DirExists(DirName: ARRAY OF CHAR): BOOLEAN
  288.                 âîçâðàùàåò TRUE, åñëè ïàïêà ñ èìåíåì DirName ñóùåñòâóåò
  289.  
  290. ------------------------------------------------------------------------------
  291. MODULE Read - ÷òåíèå îñíîâíûõ òèïîâ äàííûõ èç ôàéëà F
  292.  
  293.         Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè ÷òåíèÿ è
  294.         ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  295.         èíôîðìàöèîííîé ñòðóêòóðå F
  296.  
  297.         PROCEDURE Char(F: File.FS; VAR x: CHAR): BOOLEAN
  298.  
  299.         PROCEDURE Int(F: File.FS; VAR x: INTEGER): BOOLEAN
  300.  
  301.         PROCEDURE Real(F: File.FS; VAR x: REAL): BOOLEAN
  302.  
  303.         PROCEDURE Boolean(F: File.FS; VAR x: BOOLEAN): BOOLEAN
  304.  
  305.         PROCEDURE Set(F: File.FS; VAR x: SET): BOOLEAN
  306.  
  307.         PROCEDURE Card16(F: File.FS; VAR x: SYSTEM.CARD16): BOOLEAN
  308.  
  309. ------------------------------------------------------------------------------
  310. MODULE Write - çàïèñü îñíîâíûõ òèïîâ äàííûõ â ôàéë F
  311.  
  312.         Ïðîöåäóðû âîçâðàùàþò TRUE â ñëó÷àå óñïåøíîé îïåðàöèè çàïèñè è
  313.         ñîîòâåòñòâóþùèì îáðàçîì èçìåíÿþò ïîçèöèþ ÷òåíèÿ/çàïèñè â
  314.         èíôîðìàöèîííîé ñòðóêòóðå F
  315.  
  316.         PROCEDURE Char(F: File.FS; x: CHAR): BOOLEAN
  317.  
  318.         PROCEDURE Int(F: File.FS; x: INTEGER): BOOLEAN
  319.  
  320.         PROCEDURE Real(F: File.FS; x: REAL): BOOLEAN
  321.  
  322.         PROCEDURE Boolean(F: File.FS; x: BOOLEAN): BOOLEAN
  323.  
  324.         PROCEDURE Set(F: File.FS; x: SET): BOOLEAN
  325.  
  326.         PROCEDURE Card16(F: File.FS; x: SYSTEM.CARD16): BOOLEAN
  327.  
  328. ------------------------------------------------------------------------------
  329. MODULE DateTime - äàòà, âðåìÿ
  330.  
  331.         CONST ERR = -7.0E5
  332.  
  333.         PROCEDURE Now(VAR Year, Month, Day, Hour, Min, Sec: INTEGER)
  334.                 çàïèñûâàåò â ïàðàìåòðû êîìïîíåíòû òåêóùåé ñèñòåìíîé äàòû è
  335.                 âðåìåíè
  336.  
  337.         PROCEDURE Encode(Year, Month, Day, Hour, Min, Sec: INTEGER): REAL
  338.                 âîçâðàùàåò äàòó, ïîëó÷åííóþ èç êîìïîíåíòîâ
  339.                 Year, Month, Day, Hour, Min, Sec;
  340.                 ïðè îøèáêå âîçâðàùàåò êîíñòàíòó ERR = -7.0D5
  341.  
  342.         PROCEDURE Decode(Date: REAL; VAR Year, Month, Day,
  343.                                 Hour, Min, Sec: INTEGER): BOOLEAN
  344.                 èçâëåêàåò êîìïîíåíòû
  345.                 Year, Month, Day, Hour, Min, Sec èç äàòû Date;
  346.                 ïðè îøèáêå âîçâðàùàåò FALSE
  347.  
  348. ------------------------------------------------------------------------------
  349. MODULE Args - ïàðàìåòðû ïðîãðàììû
  350.  
  351.         VAR argc: INTEGER
  352.                 êîëè÷åñòâî ïàðàìåòðîâ ïðîãðàììû, âêëþ÷àÿ èìÿ
  353.                 èñïîëíÿåìîãî ôàéëà
  354.  
  355.         PROCEDURE GetArg(n: INTEGER; VAR s: ARRAY OF CHAR)
  356.                 çàïèñûâàåò â ñòðîêó s n-é ïàðàìåòð ïðîãðàììû,
  357.                 íóìåðàöèÿ ïàðàìåòðîâ îò 0 äî argc - 1,
  358.                 íóëåâîé ïàðàìåòð -- èìÿ èñïîëíÿåìîãî ôàéëà
  359.  
  360. ------------------------------------------------------------------------------
  361. MODULE KOSAPI
  362.  
  363.         PROCEDURE sysfunc1(arg1: INTEGER): INTEGER
  364.         PROCEDURE sysfunc2(arg1, arg2: INTEGER): INTEGER
  365.         ...
  366.         PROCEDURE sysfunc7(arg1, arg2, ..., arg7: INTEGER): INTEGER
  367.                 Îáåðòêè äëÿ ôóíêöèé API ÿäðà KolibriOS.
  368.                 arg1 .. arg7 ñîîòâåòñòâóþò ðåãèñòðàì
  369.                         eax, ebx, ecx, edx, esi, edi, ebp;
  370.                 âîçâðàùàþò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà.
  371.  
  372.         PROCEDURE sysfunc22(arg1, arg2: INTEGER; VAR res2: INTEGER): INTEGER
  373.                 Îáåðòêà äëÿ ôóíêöèé API ÿäðà KolibriOS.
  374.                 arg1 - ðåãèñòð eax, arg2 - ðåãèñòð ebx,
  375.                 res2 - çíà÷åíèå ðåãèñòðà ebx ïîñëå ñèñòåìíîãî âûçîâà;
  376.                 âîçâðàùàåò çíà÷åíèå ðåãèñòðà eax ïîñëå ñèñòåìíîãî âûçîâà.
  377.  
  378.         PROCEDURE malloc(size: INTEGER): INTEGER
  379.                 Âûäåëÿåò áëîê ïàìÿòè.
  380.                 size - ðàçìåð áëîêà â áàéòàõ,
  381.                 âîçâðàùàåò àäðåñ âûäåëåííîãî áëîêà
  382.  
  383.         PROCEDURE free(ptr: INTEGER): INTEGER
  384.                 Îñâîáîæäàåò ðàíåå âûäåëåííûé áëîê ïàìÿòè ñ àäðåñîì ptr,
  385.                 âîçâðàùàåò 0
  386.  
  387.         PROCEDURE realloc(ptr, size: INTEGER): INTEGER
  388.                 Ïåðåðàñïðåäåëÿåò áëîê ïàìÿòè,
  389.                 ptr - àäðåñ ðàíåå âûäåëåííîãî áëîêà,
  390.                 size - íîâûé ðàçìåð,
  391.                 âîçâðàùàåò óêàçàòåëü íà ïåðåðàñïðåäåëåííûé áëîê,
  392.                 0 ïðè îøèáêå
  393.  
  394.         PROCEDURE GetCommandLine(): INTEGER
  395.                 Âîçâðàùàåò àäðåñ ñòðîêè ïàðàìåòðîâ
  396.  
  397.         PROCEDURE GetName(): INTEGER
  398.                 Âîçâðàùàåò àäðåñ ñòðîêè ñ èìåíåì ïðîãðàììû
  399.  
  400.         PROCEDURE LoadLib(name: ARRAY OF CHAR): INTEGER
  401.                 Çàãðóæàåò DLL ñ ïîëíûì èìåíåì name. Âîçâðàùàåò àäðåñ òàáëèöû
  402.                 ýêñïîðòà. Ïðè îøèáêå âîçâðàùàåò 0.
  403.  
  404.         PROCEDURE GetProcAdr(name: ARRAY OF CHAR; lib: INTEGER): INTEGER
  405.                 name - èìÿ ïðîöåäóðû
  406.                 lib - àäðåñ òàáëèöû ýêñïîðòà DLL
  407.                 Âîçâðàùàåò àäðåñ ïðîöåäóðû. Ïðè îøèáêå âîçâðàùàåò 0.
  408.  
  409. ------------------------------------------------------------------------------
  410. MODULE ColorDlg - ðàáîòà ñ äèàëîãîì "Color Dialog"
  411.  
  412.         TYPE
  413.  
  414.                 Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *)
  415.                     status: INTEGER   (* ñîñòîÿíèå äèàëîãà:
  416.                                          0 - ïîëüçîâàòåëü íàæàë Cancel
  417.                                          1 - ïîëüçîâàòåëü íàæàë OK
  418.                                          2 - äèàëîã îòêðûò           *)
  419.  
  420.                     color:  INTEGER   (* âûáðàííûé öâåò *)
  421.                 END
  422.  
  423.         PROCEDURE Create(draw_window: DRAW_WINDOW): Dialog
  424.                 ñîçäàòü äèàëîã
  425.                 draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà
  426.                 (TYPE DRAW_WINDOW = PROCEDURE);
  427.                 ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  428.  
  429.         PROCEDURE Show(cd: Dialog)
  430.                 ïîêàçàòü äèàëîã
  431.                 cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå
  432.                 ïðîöåäóðîé Create
  433.  
  434.         PROCEDURE Destroy(VAR cd: Dialog)
  435.                 óíè÷òîæèòü äèàëîã
  436.                 cd - óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  437.  
  438. ------------------------------------------------------------------------------
  439. MODULE OpenDlg - ðàáîòà ñ äèàëîãîì "Open Dialog"
  440.  
  441.         TYPE
  442.  
  443.                 Dialog = POINTER TO RECORD (* ñòðóêòóðà äèàëîãà *)
  444.                     status:   INTEGER  (* ñîñòîÿíèå äèàëîãà:
  445.                                           0 - ïîëüçîâàòåëü íàæàë Cancel
  446.                                           1 - ïîëüçîâàòåëü íàæàë OK
  447.                                           2 - äèàëîã îòêðûò           *)
  448.  
  449.                     FileName: ARRAY 4096 OF CHAR (* èìÿ âûáðàííîãî ôàéëà *)
  450.                     FilePath: ARRAY 4096 OF CHAR (* ïîëíîå èìÿ âûáðàííîãî
  451.                                                     ôàéëà                *)
  452.                 END
  453.  
  454.         PROCEDURE Create(draw_window: DRAW_WINDOW; type: INTEGER; def_path,
  455.                         filter: ARRAY OF CHAR): Dialog
  456.                 ñîçäàòü äèàëîã
  457.                 draw_window - ïðîöåäóðà ïåðåðèñîâêè îñíîâíîãî îêíà
  458.                         (TYPE DRAW_WINDOW = PROCEDURE)
  459.                 type -  òèï äèàëîãà
  460.                         0 - îòêðûòü
  461.                         1 - ñîõðàíèòü
  462.                         2 - âûáðàòü ïàïêó
  463.                 def_path - ïóòü ïî óìîë÷àíèþ, ïàïêà def_path áóäåò îòêðûòà
  464.                         ïðè ïåðâîì çàïóñêå äèàëîãà
  465.                 filter - â ñòðîêå çàïèñàíî ïåðå÷èñëåíèå ðàñøèðåíèé ôàéëîâ,
  466.                         êîòîðûå áóäóò ïîêàçàíû â äèàëîãîâîì îêíå, ðàñøèðåíèÿ
  467.                         ðàçäåëÿþòñÿ ñèìâîëîì "|", íàïðèìåð: "ASM|TXT|INI"
  468.                 ïðîöåäóðà âîçâðàùàåò óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  469.  
  470.         PROCEDURE Show(od: Dialog; Width, Height: INTEGER)
  471.                 ïîêàçàòü äèàëîã
  472.                 od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà, êîòîðûé áûë ñîçäàí ðàíåå
  473.                      ïðîöåäóðîé Create
  474.                 Width è Height - øèðèíà è âûñîòà äèàëîãîâîãî îêíà
  475.  
  476.         PROCEDURE Destroy(VAR od: Dialog)
  477.                 óíè÷òîæèòü äèàëîã
  478.                 od - óêàçàòåëü íà ñòðóêòóðó äèàëîãà
  479.  
  480. ------------------------------------------------------------------------------
  481. MODULE kfonts - ðàáîòà ñ kf-øðèôòàìè
  482.  
  483.         CONST
  484.  
  485.                 bold            =   1
  486.                 italic          =   2
  487.                 underline       =   4
  488.                 strike_through  =   8
  489.                 smoothing       =  16
  490.                 bpp32           =  32
  491.  
  492.         TYPE
  493.  
  494.                 TFont = POINTER TO TFont_desc (* óêàçàòåëü íà øðèôò *)
  495.  
  496.         PROCEDURE LoadFont(file_name: ARRAY OF CHAR): TFont
  497.                 çàãðóçèòü øðèôò èç ôàéëà
  498.                 file_name   èìÿ kf-ôàéëà
  499.                 ðåç-ò:      óêàçàòåëü íà øðèôò/NIL (îøèáêà)
  500.  
  501.         PROCEDURE SetSize(Font: TFont; font_size: INTEGER): BOOLEAN
  502.                 óñòàíîâèòü ðàçìåð øðèôòà
  503.                 Font        óêàçàòåëü íà øðèôò
  504.                 font_size   ðàçìåð øðèôòà
  505.                 ðåç-ò:      TRUE/FALSE (îøèáêà)
  506.  
  507.         PROCEDURE Enabled(Font: TFont; font_size: INTEGER): BOOLEAN
  508.                 ïðîâåðèòü, åñòü ëè øðèôò, çàäàííîãî ðàçìåðà
  509.                 Font        óêàçàòåëü íà øðèôò
  510.                 font_size   ðàçìåð øðèôòà
  511.                 ðåç-ò:      TRUE/FALSE (øðèôòà íåò)
  512.  
  513.         PROCEDURE Destroy(VAR Font: TFont)
  514.                 âûãðóçèòü øðèôò, îñâîáîäèòü äèíàìè÷åñêóþ ïàìÿòü
  515.                 Font        óêàçàòåëü íà øðèôò
  516.                 Ïðèñâàèâàåò ïåðåìåííîé Font çíà÷åíèå NIL
  517.  
  518.         PROCEDURE TextHeight(Font: TFont): INTEGER
  519.                 ïîëó÷èòü âûñîòó ñòðîêè òåêñòà
  520.                 Font        óêàçàòåëü íà øðèôò
  521.                 ðåç-ò:      âûñîòà ñòðîêè òåêñòà â ïèêñåëÿõ
  522.  
  523.         PROCEDURE TextWidth(Font: TFont;
  524.                     str, length, params: INTEGER): INTEGER
  525.                 ïîëó÷èòü øèðèíó ñòðîêè òåêñòà
  526.                 Font        óêàçàòåëü íà øðèôò
  527.                 str         àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251
  528.                 length      êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà
  529.                             çàâåðøàåòñÿ íóëåì
  530.                 params      ïàðàìåòðû-ôëàãè ñì. íèæå
  531.                 ðåç-ò:      øèðèíà ñòðîêè òåêñòà â ïèêñåëÿõ
  532.  
  533.         PROCEDURE TextOut(Font: TFont;
  534.                     canvas, x, y, str, length, color, params: INTEGER)
  535.                 âûâåñòè òåêñò â áóôåð
  536.                 äëÿ âûâîäà áóôåðà â îêíî, èñïîëüçîâàòü ô.65 èëè
  537.                 ô.7 (åñëè áóôåð 24-áèòíûé)
  538.                 Font        óêàçàòåëü íà øðèôò
  539.                 canvas      àäðåñ ãðàôè÷åñêîãî áóôåðà
  540.                             ñòðóêòóðà áóôåðà:
  541.                               Xsize       dd
  542.                               Ysize       dd
  543.                               picture     rb  Xsize * Ysize * 4 (32 áèòà)
  544.                                               èëè Xsize * Ysize * 3 (24 áèòà)
  545.                 x, y        êîîðäèíàòû òåêñòà îòíîñèòåëüíî ëåâîãî âåðõíåãî
  546.                             óãëà áóôåðà
  547.                 str         àäðåñ ñòðîêè òåêñòà â êîäèðîâêå Win-1251
  548.                 length      êîëè÷åñòâî ñèìâîëîâ â ñòðîêå èëè -1, åñëè ñòðîêà
  549.                             çàâåðøàåòñÿ íóëåì
  550.                 color       öâåò òåêñòà 0x00RRGGBB
  551.                 params      ïàðàìåòðû-ôëàãè:
  552.                                1   æèðíûé
  553.                                2   êóðñèâ
  554.                                4   ïîä÷åðêíóòûé
  555.                                8   ïåðå÷åðêíóòûé
  556.                               16   ïðèìåíèòü ñãëàæèâàíèå
  557.                               32   âûâîä â 32-áèòíûé áóôåð
  558.                             âîçìîæíî èñïîëüçîâàíèå ôëàãîâ â ëþáûõ ñî÷åòàíèÿõ
  559. ------------------------------------------------------------------------------
  560. MODULE RasterWorks - îáåðòêà áèáëèîòåêè Rasterworks.obj
  561. ------------------------------------------------------------------------------
  562. MODULE libimg - îáåðòêà áèáëèîòåêè libimg.obj
  563. ------------------------------------------------------------------------------