Re: box_lib.obj - библиотека gui компонентов
Posted: Mon Jul 30, 2012 4:17 pm
Ну или хотябы не самые сложные примеры.IgorA wrote:Простых примеров скорее всего нет. Есть примеры которые есть используют сразу несколько элементов.
Official KolibriOS board
http://board.kolibrios.org/
Ну или хотябы не самые сложные примеры.IgorA wrote:Простых примеров скорее всего нет. Есть примеры которые есть используют сразу несколько элементов.
Исправил в ревизии 28980CodErr wrote:У edit_box-а после вызова edit_box_set_text не пропадает выделение, если оно было до вызова.
Каким образом возвращает? Если подразумевается указатель text в структуре editbox, то там по указателю будет строка текста.punk_joker wrote:В каком формате возвращает значение форма для ввода данных, с флагом ввода только цифр?
Code: Select all
;input:
; buf - указатель на строку, число должно быть в 10 или 16 ричном виде
;output:
; eax - число
align 4
proc conv_str_to_int, buf:dword
xor eax,eax
push ebx ecx esi
xor ebx,ebx
mov esi,[buf]
;на случай если перед числом находятся пробелы
@@:
cmp byte[esi],' '
jne @f
inc esi
jmp @b
@@:
;определение отрицательных чисел
xor ecx,ecx
inc ecx
cmp byte[esi],'-'
jne @f
dec ecx
inc esi
@@:
cmp word[esi],'0x'
je .load_digit_16
.load_digit_10: ;считывание 10-тичных цифр
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'9'
jg @f
sub bl,'0'
imul eax,10
add eax,ebx
inc esi
jmp .load_digit_10
jmp @f
.load_digit_16: ;считывание 16-ричных цифр
add esi,2
.cycle_16:
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'f'
jg @f
cmp bl,'9'
jle .us1
cmp bl,'A'
jl @f ;отсеиваем символы >'9' и <'A'
.us1: ;составное условие
cmp bl,'F'
jle .us2
cmp bl,'a'
jl @f ;отсеиваем символы >'F' и <'a'
sub bl,32 ;переводим символы в верхний регистр, для упрощения их последущей обработки
.us2: ;составное условие
sub bl,'0'
cmp bl,9
jle .cor1
sub bl,7 ;convert 'A' to '10'
.cor1:
shl eax,4
add eax,ebx
inc esi
jmp .cycle_16
@@:
cmp ecx,0 ;если число отрицательное
jne @f
sub ecx,eax
mov eax,ecx
@@:
pop esi ecx ebx
ret
endp
Code: Select all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use OptionBox ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags
{ ;структура параметров для чек бокса
op_flag_en=10b
.option_group: dd point_gr
.left: dw left ;+0 ;положение по х
.top: dw top ;положение по у
.ch_text_margin: dd op_text_margin ;расстояние от прямоугольника чек бокса до надписи
.ch_size: dd op_size ;размер квадрата чек бокса, для примера 12
.color: dd color ;цвет внутри чекбокса
.border_color: dd border_color ;цвет рамки
.text_color: dd text_color ;цвет надписи
.text: dd text ;адрес в коде программы где расположен текст
.ch_text_length: dd op_text_length ;длинна строки с символами
.flags: dd flags+0 ; флаги
}
.flags: dd flags+0 ; флаги
Code: Select all
scrollbar:
.size_x dw 15
.start_x dw 20
.size_y dw 300
.start_y dw 20
.btn_high dd 15
.type dd 1
.max_area dd 30
.cur_area dd 7
.position dd 0
.bckg_col dd 0xEEEEEE
.frnt_col dd 0xBBDDFF
.line_col dd 0
.redraw dd 0
.delta dw 0
.delta2 dw 0
.r_size_x dw 0
.r_start_x dw 0
.r_size_y dw 0
.r_start_y dw 0
.m_pos dd 0
.m_pos_2 dd 0
.m_keys dd 0
.run_size dd 0
.position2 dd 0
.work_size dd 0
.all_redraw dd 1
.ar_offset dd 10