Rev 7597 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7597 | akron1 | 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 | |||
7693 | akron1 | 101 | pi = 3.141592653589793E+00 |
102 | e = 2.718281828459045E+00 |
||
7597 | akron1 | 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 | |||
7693 | akron1 | 156 | PROCEDURE arsinh(x: REAL): REAL |
7597 | akron1 | 157 | обратный гиперболический синус x |
158 | |||
7693 | akron1 | 159 | PROCEDURE arcosh(x: REAL): REAL |
7597 | akron1 | 160 | обратный гиперболический косинус x |
161 | |||
7693 | akron1 | 162 | PROCEDURE artanh(x: REAL): REAL |
7597 | akron1 | 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 | |||
7693 | akron1 | 184 | PROCEDURE fact(n: INTEGER): REAL |
185 | факториал n |
||
186 | |||
7597 | akron1 | 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 Card16(F: File.FS; VAR x: SYSTEM.CARD16): 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 Card16(F: File.FS; x: SYSTEM.CARD16): 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; |
||
7693 | akron1 | 343 | при ошибке возвращает константу ERR = -7.0E5 |
7597 | akron1 | 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 | |||
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 | |||
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 | |||
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 | |||
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 | ------------------------------------------------------------------------------> |