forked from KolibriOS/kolibrios
566 lines
28 KiB
Plaintext
566 lines
28 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
|
|||
|
------------------------------------------------------------------------------
|