Box lib editbox/ru: Difference between revisions
Jump to navigation
Jump to search
(тег <asm> не работает - заменил на <pre>) |
|||
Line 8: | Line 8: | ||
*'''edit_box_draw''' - эта функция должна вызываться при перерисовке элемента. | *'''edit_box_draw''' - эта функция должна вызываться при перерисовке элемента. | ||
*'''edit_box_set_text''' - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования: | *'''edit_box_set_text''' - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования: | ||
< | <pre>push dword buf | ||
push dword edit1 | push dword edit1 | ||
call dword [edit_box_set_text] | call dword [edit_box_set_text] | ||
......... | ......... | ||
buf db '111-222-333',0</ | buf db '111-222-333',0</pre> | ||
где ''edit1'' - структура элемента edit_box; ''buf'' - буфер, в котором содержится устанавливаемый текст. | где ''edit1'' - структура элемента edit_box; ''buf'' - буфер, в котором содержится устанавливаемый текст. | ||
*'''version_ed''' - версия элемента | *'''version_ed''' - версия элемента |
Revision as of 13:02, 30 July 2012
Введение
Текстовое поле, используется при вводе текстовой/числовой информации.
Функции
- edit_box_key - эта функция должна вызываться при вводе информации с клавиатуры
- edit_box_mouse - эта функция должна вызываться при вводе информации с мыши
- edit_box_draw - эта функция должна вызываться при перерисовке элемента.
- edit_box_set_text - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования:
push dword buf push dword edit1 call dword [edit_box_set_text] ......... buf db '111-222-333',0
где edit1 - структура элемента edit_box; buf - буфер, в котором содержится устанавливаемый текст.
- version_ed - версия элемента
Структура editbox
Размер структуры editbox указан внутри файла box_lib.mac в параметре ed_struc_size.
struc edit_box width,left,top,color,shift_color,focus_border_color,\ blur_border_color,text_color,max,text,mouse_variable,flags,size,pos { .width dd width .left dd left .top dd top .color dd color .shift_color dd shift_color .focus_border_color dd focus_border_color .blur_border_color dd blur_border_color .text_color dd text_color .max dd max .text dd text .mouse_variable dd mouse_variable .flags dd flags+0 .size dd size+0 .pos dd pos+0 .offset dd 0 .cl_curs_x dd 0 .cl_curs_y dd 0 .shift dd 0 .shift_old dd 0 }
- width - ширина элемента
- left - отступ слева (положение по x)
- top - отступ сверху (положение по y)
- color - цвет фона
- shift_color - цвет выделения при удерживании [Shift] или мышкой
- focus_border_color - цвет рамки когда поле в фокусе
- blur_border_color - цвет рамки когда поле не в фокусе
- text_color - цвет текста
- max - максимальный размер текста (должно быть +2 резервных символа)
- size - текущая длина текста
Стили элемента
- ed_figure_only - разрешается ввод чисел от 0 до 9.
- ed_focus - текстовое поле в фокусе.