1) 'kol_f_edit': optimize & update, create folder 'docs'
2) 'buf2d.obj': rename function 'buf2d_cruve_bezier' git-svn-id: svn://kolibrios.org@1727 a494cfbc-eb01-0410-851d-a64ba20cac60
Before Width: | Height: | Size: 42 KiB |
@ -1,7 +1,7 @@
|
||||
;
|
||||
; в этом файле собраны функции создающие програмный код
|
||||
; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ᮧ¤ î騥 ¯à®£à ¬ë© ª®¤
|
||||
;
|
||||
u_object object ;временный объект для задания смещений
|
||||
u_object object ;¢à¥¬¥ë© ®¡ê¥ªâ ¤«ï § ¤ ¨ï ᬥ饨©
|
||||
|
||||
macro insert_coma
|
||||
{
|
||||
@ -20,7 +20,7 @@ macro insert_sp
|
||||
stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor
|
||||
}
|
||||
|
||||
;функция вставляет текстовую строку в текстовый редактор
|
||||
;äãªæ¨ï ¢áâ ¢«ï¥â ⥪á⮢ãî áâப㠢 ⥪áâ®¢ë© à¥¤ ªâ®à
|
||||
align 4
|
||||
proc insert_text, txt:dword
|
||||
push eax
|
||||
@ -33,7 +33,7 @@ proc insert_text, txt:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;вставляет указанное свойство из объекта в текстовый редактор
|
||||
;¢áâ ¢«ï¥â 㪠§ ®¥ ⥪á⮢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
|
||||
align 4
|
||||
proc insert_text_prop, p_obj:dword,index:dword
|
||||
push eax edx
|
||||
@ -46,7 +46,31 @@ proc insert_text_prop, p_obj:dword,index:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;функция вставляет 2 параметра по 16 бит в виде:
|
||||
;¢áâ ¢«ï¥â 㪠§ ®¥ ¡¨â®¢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
|
||||
align 4
|
||||
proc insert_bit_prop, p_obj:dword,index:dword
|
||||
push ebx ecx edi
|
||||
mov ebx,[p_obj]
|
||||
mov ecx,[index]
|
||||
test_bool_prop ebx,ecx
|
||||
jnc @f ;¥á«¨ ¯®«ì§®¢ â¥«ì ¥ ¢ë¡à « ¢ ®¡ê¥ªâ¥ ¤ ®¥ ᢮©á⢮
|
||||
mov ebx,dword[ebx]
|
||||
call find_obj_in_opt
|
||||
mov ecx,dword[edi+obj_opt.bit_val-obj_opt] ;ecx - ᬥ饨¥ § 票© ᢮©á⢠(ª®áâ â)
|
||||
cmp byte[ecx],0
|
||||
je @f ;¥á«¨ ã ®¡ê¥ªâ ¥â § ¤ ëå ¡¨â®¢ëå ᢮©áâ¢
|
||||
add ecx,obj_opt ;¤®¡ ¢«ï¥¬ ç «® ä ©« á ®¯æ¨ï¬¨
|
||||
stdcall get_string_by_ind, ecx,[index]
|
||||
cmp byte[edi],0
|
||||
je @f ;¥á«¨ ã ®¡ê¥ªâ ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥
|
||||
stdcall insert_text, txt_plus
|
||||
stdcall insert_text, edi
|
||||
@@:
|
||||
pop edi ecx ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
;äãªæ¨ï ¢áâ ¢«ï¥â 2 ¯ à ¬¥âà ¯® 16 ¡¨â ¢ ¢¨¤¥:
|
||||
; (_p1_ shl 16 + _p2_)
|
||||
align 4
|
||||
proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword
|
||||
@ -59,7 +83,7 @@ proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;вставляем строку вида:
|
||||
;¢áâ ¢«ï¥¬ áâப㠢¨¤ :
|
||||
; txt_(n) db (s)
|
||||
align 4
|
||||
proc insert_text_label_data, obj:dword, col:dword
|
||||
@ -145,18 +169,18 @@ macro insert_ret
|
||||
align 4
|
||||
but_update:
|
||||
call draw_constructor
|
||||
cmp byte[show_mode],0 ;условие видимости окна конструктора
|
||||
cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª ª®áâàãªâ®à
|
||||
jne @f
|
||||
stdcall [buf2d_draw], buf_fon
|
||||
@@:
|
||||
call code_gen
|
||||
cmp byte[show_mode],1 ;условие видимости текстового окна
|
||||
cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª
|
||||
jne @f
|
||||
stdcall [ted_draw], tedit0
|
||||
@@:
|
||||
ret
|
||||
|
||||
;функция создающая код всего файла
|
||||
;äãªæ¨ï ᮧ¤ îé ï ª®¤ ¢á¥£® ä ©«
|
||||
align 4
|
||||
code_gen:
|
||||
stdcall [ted_clear], tedit0,1
|
||||
@ -166,14 +190,14 @@ pushad
|
||||
xor bl,bl
|
||||
call code_gen_obj
|
||||
stdcall [ted_text_add], tedit0,\
|
||||
txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;добавляем символ новой строки с опцией ted_opt_ed_change_time для возможности сохранения файла
|
||||
stdcall [ted_init_scroll_bars], tedit0, 4 ;меняем размеры скроллингов
|
||||
txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;¤®¡ ¢«ï¥¬ ᨬ¢®« ®¢®© áâப¨ á ®¯æ¨¥© ted_opt_ed_change_time ¤«ï ¢®§¬®¦®á⨠á®åà ¥¨ï ä ©«
|
||||
stdcall [ted_init_scroll_bars], tedit0, 4 ;¬¥ï¥¬ à §¬¥àë áªà®««¨£®¢
|
||||
popad
|
||||
ret
|
||||
|
||||
;input:
|
||||
; bl - уровень объекта
|
||||
; esi - указатель на узел
|
||||
; bl - ã஢¥ì ®¡ê¥ªâ
|
||||
; esi - 㪠§ ⥫ì 㧥«
|
||||
align 4
|
||||
code_gen_obj:
|
||||
push ebx edx
|
||||
@ -185,13 +209,13 @@ push ebx edx
|
||||
jl .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop eax ;получаем данные узла
|
||||
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
cmp dword[eax],C_STR
|
||||
jne .no_struct
|
||||
stdcall get_obj_text_col, eax,1 ;edx - указатель на 1-е свойство структуры
|
||||
stdcall get_obj_text_col, eax,1 ;edx - 㪠§ ⥫ì 1-¥ ᢮©á⢮ áâàãªâãàë
|
||||
stdcall insert_text,txt_struc
|
||||
cmp byte[edx],0
|
||||
jne @f
|
||||
@ -202,7 +226,7 @@ push ebx edx
|
||||
|
||||
cmp byte[edx],0
|
||||
je @f
|
||||
;если структура задана макросом
|
||||
;¥á«¨ áâàãªâãà § ¤ ¬ ªà®á®¬
|
||||
insert_sp
|
||||
stdcall insert_text_prop, eax,1
|
||||
insert_nl
|
||||
@ -211,19 +235,19 @@ push ebx edx
|
||||
insert_nl
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
cmp esi,0
|
||||
je .end_st
|
||||
cmp byte[esi+2],bl ;lev
|
||||
jle .end_st
|
||||
push bx
|
||||
mov bl,byte[esi+2]
|
||||
call code_gen_obj ;рекурсивный вызов дочерних объектов
|
||||
call code_gen_obj ;४ãàá¨¢ë© ¢ë§®¢ ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||
pop bx
|
||||
.end_st:
|
||||
cmp byte[edx],0
|
||||
je @f
|
||||
;если структура задана макросом
|
||||
;¥á«¨ áâàãªâãà § ¤ ¬ ªà®á®¬
|
||||
stdcall insert_text, txt_skob_fc
|
||||
insert_nl
|
||||
jmp .beg_iterat
|
||||
@ -233,42 +257,38 @@ push ebx edx
|
||||
.no_struct:
|
||||
cmp dword[eax],C_TXT
|
||||
jne @f
|
||||
stdcall get_code_text,eax ;обработка объекта
|
||||
stdcall get_code_text,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
cmp dword[eax],C_INC
|
||||
jne @f
|
||||
stdcall get_code_incl,eax ;обработка объекта
|
||||
@@:
|
||||
cmp dword[eax],C_COM
|
||||
jne @f
|
||||
stdcall get_code_comment,eax ;обработка объекта
|
||||
stdcall get_code_incl,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
cmp dword[eax],C_VAR
|
||||
jne @f
|
||||
stdcall get_code_variable,eax,ebx ;обработка объекта
|
||||
stdcall get_code_variable,eax,ebx ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
cmp dword[eax],C_WND
|
||||
jne @f
|
||||
stdcall get_code_window,eax ;обработка объекта
|
||||
stdcall get_code_window,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
cmp dword[eax],C_ACO
|
||||
jne @f
|
||||
stdcall get_code_auto,eax ;обработка объекта
|
||||
stdcall get_code_auto,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
cmp dword[eax],C_KEY ;клавиатура
|
||||
cmp dword[eax],C_KEY ;ª« ¢¨ âãà
|
||||
jne @f
|
||||
stdcall get_code_key,eax ;обработка объекта
|
||||
stdcall get_code_key,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
pop edx ebx
|
||||
ret
|
||||
|
||||
;добавление объекта с програмным кодом (текстом)
|
||||
;¤®¡ ¢«¥¨¥ ®¡ê¥ªâ á ¯à®£à ¬ë¬ ª®¤®¬ (⥪á⮬)
|
||||
align 4
|
||||
proc get_code_text, p_obj:dword
|
||||
;pushad
|
||||
@ -279,7 +299,7 @@ proc get_code_text, p_obj:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;обработка объекта создающего автоматичексие коды
|
||||
;®¡à ¡®âª ®¡ê¥ªâ ᮧ¤ î饣® ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë
|
||||
align 4
|
||||
proc get_code_auto, p_obj:dword
|
||||
pushad
|
||||
@ -295,16 +315,16 @@ proc get_code_auto, p_obj:dword
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_ACM
|
||||
jae @f
|
||||
;автоматические события от мыши
|
||||
; ¢â®¬ â¨ç¥áª¨¥ ᮡëâ¨ï ®â ¬ëè¨
|
||||
call get_code_auto_m
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_ABU
|
||||
jae @f
|
||||
;создание функции button
|
||||
;ᮧ¤ ¨¥ äãªæ¨¨ button
|
||||
insert_but_beg
|
||||
call get_code_auto_but ;коды вызова кнопок
|
||||
call get_code_auto_but ;ª®¤ë ¢ë§®¢ ª®¯®ª
|
||||
insert_but_end
|
||||
call get_code_a_but_fun ;коды функций, вызываемых при нажатии кнопок
|
||||
call get_code_a_but_fun ;ª®¤ë äãªæ¨©, ¢ë§ë¢ ¥¬ëå ¯à¨ ¦ ⨨ ª®¯®ª
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_ACD
|
||||
jae @f
|
||||
@ -322,7 +342,7 @@ proc get_code_auto, p_obj:dword
|
||||
call get_code_auto_data_dop
|
||||
|
||||
mov edx,C_LIB
|
||||
stdcall find_obj_in_file,edx ;eax - указатель на структуру библиотеки
|
||||
stdcall find_obj_in_file,edx ;eax - 㪠§ ⥫ì áâàãªâãàã ¡¨¡«¨®â¥ª¨
|
||||
cmp eax,0
|
||||
je @f
|
||||
insert_nl
|
||||
@ -340,7 +360,7 @@ proc get_code_auto, p_obj:dword
|
||||
stdcall insert_text, txt_ll_start
|
||||
call get_code_auto_data_libs_struc
|
||||
stdcall insert_text, txt_ll_end
|
||||
call get_code_auto_data_libs ;таблицы импорта библиотек
|
||||
call get_code_auto_data_libs ;â ¡«¨æë ¨¬¯®àâ ¡¨¡«¨®â¥ª
|
||||
@@:
|
||||
insert_nl
|
||||
popad
|
||||
@ -357,7 +377,7 @@ proc get_code_auto_m
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -375,7 +395,7 @@ proc get_code_auto_m
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -383,11 +403,11 @@ proc get_code_auto_m
|
||||
ret
|
||||
endp
|
||||
|
||||
;создание данных (структур объектов)
|
||||
;ᮧ¤ ¨¥ ¤ ëå (áâàãªâãà ®¡ê¥ªâ®¢)
|
||||
align 4
|
||||
proc get_code_auto_data_el
|
||||
pushad
|
||||
insert_nl ;отступ для форматирования
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
@ -396,7 +416,7 @@ proc get_code_auto_data_el
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -424,12 +444,15 @@ proc get_code_auto_data_el
|
||||
|
||||
stdcall insert_text, txt_mouse_dd
|
||||
|
||||
stdcall insert_text, txt_0 ;тут будут свойства editbox а пока просто ставим 0
|
||||
xchg eax,edx ;сохраняем значение edx
|
||||
stdcall insert_text, txt_0 ;᢮©á⢠editbox
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FIO
|
||||
|
||||
xchg eax,edx ;á®åà 塞 § 票¥ edx
|
||||
stdcall get_obj_text_col,ebx,10
|
||||
cmp byte[edx],0 ;проверяем пустая ли строка при запуске editbox
|
||||
cmp byte[edx],0 ;¯à®¢¥à塞 ¯ãáâ ï «¨ áâப ¯à¨ § ¯ã᪥ editbox
|
||||
je .null_string
|
||||
xchg eax,edx ;востанавливаем значение edx
|
||||
xchg eax,edx ;¢®áâ ¢«¨¢ ¥¬ § 票¥ edx
|
||||
stdcall insert_text, txt_coma
|
||||
|
||||
stdcall insert_text, txt_txt
|
||||
@ -459,7 +482,7 @@ proc get_code_auto_data_el
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -470,7 +493,7 @@ endp
|
||||
align 4
|
||||
proc get_code_auto_data_el_cbox
|
||||
pushad
|
||||
insert_nl ;отступ для форматирования
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
@ -479,7 +502,7 @@ proc get_code_auto_data_el_cbox
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -504,8 +527,6 @@ proc get_code_auto_data_el_cbox
|
||||
stdcall insert_text, txt_coma
|
||||
stdcall insert_text_prop, ebx,7
|
||||
stdcall insert_text, txt_coma
|
||||
;stdcall insert_text, txt_bit_31
|
||||
;stdcall insert_text, txt_plus
|
||||
stdcall insert_text_prop, ebx,8
|
||||
stdcall insert_text, txt_coma
|
||||
stdcall insert_text, txt_br
|
||||
@ -516,28 +537,12 @@ proc get_code_auto_data_el_cbox
|
||||
stdcall insert_text, edx
|
||||
stdcall insert_text, txt_coma
|
||||
|
||||
;флаги
|
||||
;ä« £¨
|
||||
stdcall insert_text,txt_0
|
||||
test_bool_prop ebx,BIT_MOD_CHE
|
||||
jnc @f
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_che
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_CHE_T
|
||||
jnc @f
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_che_t
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_CHE_M
|
||||
jnc @f
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_che_m
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_CHE_B
|
||||
jnc @f
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_che_b
|
||||
@@:
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_CHE
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_CHE_B
|
||||
|
||||
insert_nl
|
||||
.no_check:
|
||||
@ -547,7 +552,7 @@ proc get_code_auto_data_el_cbox
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -555,11 +560,11 @@ proc get_code_auto_data_el_cbox
|
||||
ret
|
||||
endp
|
||||
|
||||
;данные для библиотек
|
||||
;¤ ë¥ ¤«ï ¡¨¡«¨®â¥ª
|
||||
align 4
|
||||
proc get_code_auto_data_libs_param
|
||||
pushad
|
||||
insert_nl ;отступ для форматирования
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
@ -568,7 +573,7 @@ proc get_code_auto_data_libs_param
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -615,7 +620,7 @@ proc get_code_auto_data_libs_param
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -623,11 +628,11 @@ proc get_code_auto_data_libs_param
|
||||
ret
|
||||
endp
|
||||
|
||||
;данные для библиотек
|
||||
;¤ ë¥ ¤«ï ¡¨¡«¨®â¥ª
|
||||
align 4
|
||||
proc get_code_auto_data_libs_struc
|
||||
pushad
|
||||
;insert_nl ;отступ для форматирования
|
||||
;insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
@ -636,7 +641,7 @@ proc get_code_auto_data_libs_struc
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -681,7 +686,7 @@ proc get_code_auto_data_libs_struc
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -689,11 +694,11 @@ proc get_code_auto_data_libs_struc
|
||||
ret
|
||||
endp
|
||||
|
||||
;данные для библиотек
|
||||
;¤ ë¥ ¤«ï ¡¨¡«¨®â¥ª
|
||||
align 4
|
||||
proc get_code_auto_data_libs
|
||||
pushad
|
||||
insert_nl ;отступ для форматирования
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
@ -702,7 +707,7 @@ proc get_code_auto_data_libs
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -718,7 +723,7 @@ proc get_code_auto_data_libs
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -734,23 +739,23 @@ pushad
|
||||
mov bl,byte[esi+2]
|
||||
mov edi,esi
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop edx ;получение данных родительского объекта
|
||||
pop edx ;¯®«ã票¥ ¤ ëå த¨â¥«ì᪮£® ®¡ê¥ªâ
|
||||
cmp edx,0
|
||||
je @f
|
||||
@@:
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
cmp esi,0
|
||||
je @f
|
||||
cmp byte[esi+2],bl ;lev
|
||||
jle @f
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ecx ;получаем данные узла
|
||||
pop ecx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ecx,0
|
||||
je @f
|
||||
cmp dword[ecx],C_IFN
|
||||
jne @b
|
||||
;вставка указателя на функцию
|
||||
;¢áâ ¢ª 㪠§ ⥫ï äãªæ¨î
|
||||
test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
|
||||
jae .no_com_0
|
||||
stdcall insert_text, txt_com
|
||||
@ -758,7 +763,7 @@ pushad
|
||||
insert_tab
|
||||
stdcall insert_text_prop, ecx,0
|
||||
stdcall insert_text, txt_dd
|
||||
stdcall insert_text_prop, edx,3 ;приставка к функции
|
||||
stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª ª äãªæ¨¨
|
||||
stdcall insert_text_prop, ecx,0
|
||||
insert_nl
|
||||
jmp @b
|
||||
@ -767,24 +772,24 @@ pushad
|
||||
mov esi,edi
|
||||
@@:
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
cmp esi,0
|
||||
je @f
|
||||
cmp byte[esi+2],bl ;lev
|
||||
jle @f
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ecx ;получаем данные узла
|
||||
pop ecx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ecx,0
|
||||
je @f
|
||||
cmp dword[ecx],C_IFN
|
||||
jne @b
|
||||
;вставка имени импортированной функции
|
||||
;¢áâ ¢ª ¨¬¥¨ ¨¬¯®àâ¨à®¢ ®© äãªæ¨¨
|
||||
test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
|
||||
jae .no_com_1
|
||||
stdcall insert_text, txt_com
|
||||
.no_com_1:
|
||||
insert_tab
|
||||
stdcall insert_text_prop, edx,3 ;приставка к функции
|
||||
stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª ª äãªæ¨¨
|
||||
stdcall insert_text_prop, ecx,0
|
||||
stdcall insert_text, txt_db
|
||||
stdcall insert_text, txt_str_beg
|
||||
@ -800,7 +805,7 @@ popad
|
||||
align 4
|
||||
proc get_code_auto_data_dop
|
||||
pushad
|
||||
insert_nl ;отступ для форматирования
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
@ -809,13 +814,15 @@ proc get_code_auto_data_dop
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
cmp dword[ebx],C_EDB
|
||||
jne @f
|
||||
;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
|
||||
|
||||
;ä®à¬¨à㥬 ⥪áâ®¢ë¥ ¤ ë¥ ¤«ï editbox-®¢
|
||||
stdcall insert_text, txt_txt
|
||||
mov edx,fp_icon
|
||||
stdcall get_obj_id_str, ebx,edx
|
||||
@ -854,7 +861,7 @@ proc get_code_auto_data_dop
|
||||
|
||||
jmp @f
|
||||
|
||||
.no_text: ;первоначально текст не задан
|
||||
.no_text: ;¯¥à¢® ç «ì® â¥ªáâ ¥ § ¤
|
||||
stdcall insert_text, txt_times
|
||||
|
||||
stdcall insert_text_prop,ebx,9
|
||||
@ -870,7 +877,7 @@ proc get_code_auto_data_dop
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -878,7 +885,7 @@ proc get_code_auto_data_dop
|
||||
ret
|
||||
endp
|
||||
|
||||
;связываем кнопки с функциями
|
||||
;á¢ï§ë¢ ¥¬ ª®¯ª¨ á äãªæ¨ï¬¨
|
||||
align 4
|
||||
proc get_code_auto_but
|
||||
pushad
|
||||
@ -889,7 +896,7 @@ proc get_code_auto_but
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -922,7 +929,7 @@ proc get_code_auto_but
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -930,7 +937,7 @@ proc get_code_auto_but
|
||||
ret
|
||||
endp
|
||||
|
||||
;берем коды для функций нажатий на кнопки
|
||||
;¡¥à¥¬ ª®¤ë ¤«ï äãªæ¨© ¦ ⨩ ª®¯ª¨
|
||||
align 4
|
||||
proc get_code_a_but_fun
|
||||
pushad
|
||||
@ -941,7 +948,7 @@ proc get_code_a_but_fun
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -962,7 +969,7 @@ proc get_code_a_but_fun
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -977,7 +984,7 @@ proc get_code_key, p_obj:dword
|
||||
mov ebx,dword[p_obj]
|
||||
|
||||
insert_key_beg
|
||||
call get_code_funct_key ;коды вызова кнопок
|
||||
call get_code_funct_key ;ª®¤ë ¢ë§®¢ ª®¯®ª
|
||||
insert_key_end
|
||||
|
||||
insert_nl
|
||||
@ -995,7 +1002,7 @@ proc get_code_funct_key
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -1007,7 +1014,7 @@ proc get_code_funct_key
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -1015,7 +1022,7 @@ proc get_code_funct_key
|
||||
ret
|
||||
endp
|
||||
|
||||
;объекты подключения файлов 'include ...'
|
||||
;®¡ê¥ªâë ¯®¤ª«î票ï ä ©«®¢ 'include ...'
|
||||
align 4
|
||||
proc get_code_incl, p_obj:dword
|
||||
pushad
|
||||
@ -1037,15 +1044,7 @@ proc get_code_incl, p_obj:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
align 4
|
||||
proc get_code_comment, p_obj:dword
|
||||
insert_com
|
||||
stdcall insert_text_prop, dword[p_obj],0
|
||||
insert_nl
|
||||
ret
|
||||
endp
|
||||
|
||||
;создаем код задания окна
|
||||
;ᮧ¤ ¥¬ ª®¤ § ¤ ¨ï ®ª
|
||||
align 4
|
||||
proc get_code_window, p_obj:dword
|
||||
pushad
|
||||
@ -1107,13 +1106,13 @@ proc get_code_window, p_obj:dword
|
||||
|
||||
call get_code_draw_obj
|
||||
|
||||
stdcall insert_text, txt_draw_we ;код завершающий функцию рисования
|
||||
stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äãªæ¨î à¨á®¢ ¨ï
|
||||
popad
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
;формируем вызов функций для рисования объектов
|
||||
;ä®à¬¨à㥬 ¢ë§®¢ äãªæ¨© ¤«ï à¨á®¢ ¨ï ®¡ê¥ªâ®¢
|
||||
align 4
|
||||
proc get_code_draw_obj
|
||||
pushad
|
||||
@ -1124,7 +1123,7 @@ proc get_code_draw_obj
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;получаем данные узла
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
je .find_no
|
||||
|
||||
@ -1226,7 +1225,7 @@ proc get_code_draw_obj
|
||||
stdcall insert_text, txt_i_40
|
||||
insert_nl
|
||||
@@:
|
||||
cmp dword[ebx],C_DTT ;рисование текста через сист. ф. 4
|
||||
cmp dword[ebx],C_DTT ;à¨á®¢ ¨¥ ⥪áâ ç¥à¥§ á¨áâ. ä. 4
|
||||
jne .ob_draw_text
|
||||
insert_tab
|
||||
stdcall insert_text, txt_mov
|
||||
@ -1247,24 +1246,9 @@ proc get_code_draw_obj
|
||||
insert_reg txt_ecx
|
||||
insert_coma
|
||||
stdcall insert_text_prop, ebx,3
|
||||
test_bool_prop ebx,BIT_MOD_TXT_ASCII_0
|
||||
jnc @f
|
||||
;or ecx,0x80000000 - бит для строки ASCIIZ
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_31
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_TXT_NO_TRAN
|
||||
jnc @f
|
||||
;or ecx,0x40000000 - бит для не прозрачного текста
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_30
|
||||
@@:
|
||||
test_bool_prop ebx,BIT_MOD_TXT_CHAR2
|
||||
jnc @f
|
||||
;or ecx,0x40000000 - бит для 2-го сист. шрифта
|
||||
stdcall insert_text,txt_plus
|
||||
stdcall insert_text,txt_bit_28
|
||||
@@:
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_TXT_ASCII_0 ;31 - ¡¨â ¤«ï áâப¨ ASCIIZ
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_TXT_NO_TRAN ;30 - ¡¨â ¤«ï ¥ ¯à®§à 箣® ⥪áâ
|
||||
stdcall insert_bit_prop, ebx,BIT_MOD_TXT_CHAR2 ;28 - ¡¨â ¤«ï 2-£® á¨áâ. èà¨äâ
|
||||
insert_nl
|
||||
|
||||
insert_tab
|
||||
@ -1284,7 +1268,7 @@ proc get_code_draw_obj
|
||||
stdcall insert_text, txt_mov
|
||||
insert_reg txt_edi
|
||||
insert_coma
|
||||
stdcall insert_text_prop, ebx,4 ;цвет фона
|
||||
stdcall insert_text_prop, ebx,4 ;梥â ä®
|
||||
insert_nl
|
||||
@@:
|
||||
|
||||
@ -1294,7 +1278,7 @@ proc get_code_draw_obj
|
||||
.ob_draw_text:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;переходим к следущему узлу
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -1302,7 +1286,7 @@ proc get_code_draw_obj
|
||||
ret
|
||||
endp
|
||||
|
||||
;создать код объявления переменной
|
||||
;ᮧ¤ âì ª®¤ ®¡ê¥¨ï ¯¥à¥¬¥®©
|
||||
align 4
|
||||
proc get_code_variable, p_obj:dword,o_lev:dword
|
||||
pushad
|
||||
@ -1311,30 +1295,30 @@ proc get_code_variable, p_obj:dword,o_lev:dword
|
||||
|
||||
mov ecx,dword[o_lev]
|
||||
cmp cl,0
|
||||
je .no_tab ;избегаем зацикливания (0-1 = 2^32-1)
|
||||
je .no_tab ;¨§¡¥£ ¥¬ § 横«¨¢ ¨ï (0-1 = 2^32-1)
|
||||
and ecx,0xff
|
||||
cld
|
||||
@@:
|
||||
insert_tab ;формирование отступа перед переменной
|
||||
insert_tab ;ä®à¬¨à®¢ ¨¥ ®âáâ㯠¯¥à¥¤ ¯¥à¥¬¥®©
|
||||
loop @b
|
||||
.no_tab:
|
||||
|
||||
stdcall insert_text_prop, ebx,0 ;имя переменной
|
||||
stdcall insert_text_prop, ebx,0 ;¨¬ï ¯¥à¥¬¥®©
|
||||
insert_sp
|
||||
|
||||
mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - относительный индекс родительского объекта (в памяти)
|
||||
mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - ®â®á¨â¥«ìë© ¨¤¥ªá த¨â¥«ì᪮£® ®¡ê¥ªâ (¢ ¯ ¬ïâ¨)
|
||||
xor eax,eax
|
||||
mov ax,[tree2.info_size]
|
||||
imul ecx,eax ;умножаем индекс на размер структуры
|
||||
add ecx,[tree2.data_info] ;ecx - указатель данные родительского узла
|
||||
imul ecx,eax ;㬮¦ ¥¬ ¨¤¥ªá à §¬¥à áâàãªâãàë
|
||||
add ecx,[tree2.data_info] ;ecx - 㪠§ â¥«ì ¤ ë¥ à®¤¨â¥«ì᪮£® 㧫
|
||||
|
||||
;проверку на правильность ecx ???
|
||||
;¯à®¢¥àªã ¯à ¢¨«ì®áâì ecx ???
|
||||
|
||||
stdcall insert_text_prop, ecx,0 ;тип переменной
|
||||
stdcall insert_text_prop, ecx,0 ;⨯ ¯¥à¥¬¥®©
|
||||
insert_sp
|
||||
stdcall insert_text_prop, ebx,1 ;значение
|
||||
stdcall insert_text_prop, ebx,1 ;§ 票¥
|
||||
|
||||
stdcall get_obj_text_col,ebx,2 ;комментарий
|
||||
stdcall get_obj_text_col,ebx,2 ;ª®¬¬¥â ਩
|
||||
stdcall str_len,edx
|
||||
cmp eax,1
|
||||
jl @f
|
||||
@ -1350,14 +1334,14 @@ endp
|
||||
|
||||
|
||||
|
||||
;--- текстовые константы ---
|
||||
;--- ⥪áâ®¢ë¥ ª®áâ âë ---
|
||||
txt_str_beg db 39,0
|
||||
txt_str_end db 39,',0',0
|
||||
txt_coma db ',',0
|
||||
txt_skob_o db '(',0
|
||||
txt_skob_c db ')',0
|
||||
txt_skob_fo db '{',0 ;скобка фигурная открывающая
|
||||
txt_skob_fc db '}',0 ;скобка фигурная закрывающая
|
||||
txt_skob_fo db '{',0 ;᪮¡ª 䨣ãà ï ®âªàë¢ îé ï
|
||||
txt_skob_fc db '}',0 ;᪮¡ª 䨣ãà ï § ªàë¢ îé ï
|
||||
txt_i_40 db 'int 0x40',13,0
|
||||
txt_0 db '0',0
|
||||
txt_1 db '1',0
|
||||
@ -1396,14 +1380,10 @@ txt_head_l db 'head_f_l',0
|
||||
txt_err_m_i_lib db 'err_msg_import_',0
|
||||
txt_head_i db 'head_f_i',0
|
||||
txt_ll_end db 'l_libs_end:',13,0
|
||||
txt_bit_28 db '0x10000000',0
|
||||
;txt_bit_28 db '0x10000000',0
|
||||
txt_bit_29 db '0x20000000',0
|
||||
txt_bit_30 db '0x40000000',0
|
||||
txt_bit_31 db '0x80000000',0
|
||||
txt_bit_che db 'ch_flag_en',0
|
||||
txt_bit_che_t db 'ch_flag_top',0
|
||||
txt_bit_che_m db 'ch_flag_middle',0
|
||||
txt_bit_che_b db 'ch_flag_bottom',0
|
||||
;txt_bit_31 db '0x80000000',0
|
||||
txt_0x33000000 db '0x33000000',0 ;tmp
|
||||
txt_struc db 'struc',0
|
||||
txt_t db 't',0
|
||||
@ -1460,9 +1440,9 @@ txt_key_2:
|
||||
db 9,'jmp still',13
|
||||
txt_key_3:
|
||||
|
||||
;получаем порядковый номер объекта относительно памяти элемента tree2
|
||||
;¯®«ãç ¥¬ ¯®à浪®¢ë© ®¬¥à ®¡ê¥ªâ ®â®á¨â¥«ì® ¯ ¬ïâ¨ í«¥¬¥â tree2
|
||||
;output:
|
||||
; txt_buf - строка с номером объекта
|
||||
; txt_buf - áâப á ®¬¥à®¬ ®¡ê¥ªâ
|
||||
align 4
|
||||
proc get_obj_id_str, p_obj:dword, txt_buf:dword
|
||||
push eax ecx edx
|
||||
@ -1480,9 +1460,9 @@ proc get_obj_id_str, p_obj:dword, txt_buf:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;получаем порядковый номер объекта относительно памяти элемента tree2
|
||||
;¯®«ãç ¥¬ ¯®à浪®¢ë© ®¬¥à ®¡ê¥ªâ ®â®á¨â¥«ì® ¯ ¬ïâ¨ í«¥¬¥â tree2
|
||||
;output:
|
||||
; eax - номер объекта
|
||||
; eax - ®¬¥à ®¡ê¥ªâ
|
||||
align 4
|
||||
proc get_obj_id, p_obj:dword
|
||||
push ecx edx
|
||||
@ -1496,7 +1476,35 @@ proc get_obj_id, p_obj:dword
|
||||
ret
|
||||
endp
|
||||
|
||||
;--- текстовые функции ---
|
||||
;--- ⥪áâ®¢ë¥ äãªæ¨¨ ---
|
||||
|
||||
;¢ë¡¨à ¥¬ áâப㠨§ ¬ ᨢ , ¯® 㪠§ ®¬ã ¨¤¥ªáã
|
||||
;input:
|
||||
; str - 㪠§ â¥«ì ¬ ᨢ áâப
|
||||
; ind - ¨¤¥ªá ¨áª®¬®© áâப¨
|
||||
;output:
|
||||
; edi - 㪠§ â¥«ì ©¤¥ãî áâபã
|
||||
align 4
|
||||
proc get_string_by_ind, str:dword, ind:dword
|
||||
push eax ebx ecx
|
||||
mov edi,[str]
|
||||
mov ebx,[ind]
|
||||
xor al,al ;0 - ᨬ¢®« ª®æ áâப¨
|
||||
@@:
|
||||
cmp ebx,0
|
||||
jle @f ;¥á«¨ ©¤¥ áâப á 㪠§ ë¬ ¨¤¥ªá®¬
|
||||
xor ecx,ecx
|
||||
dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â
|
||||
cld
|
||||
repne scasb ;¨é¥¬ ª®¥æ áâப¨ (al=0)
|
||||
cmp byte[edi],0
|
||||
je @f ;¥á«¨ á«¥¤ãî饩 áâப¨ ¥â ¢ë室 ¨§ 横«
|
||||
dec ebx
|
||||
jmp @b
|
||||
@@:
|
||||
pop ecx ebx eax
|
||||
ret
|
||||
endp
|
||||
|
||||
align 4
|
||||
proc mem_clear, mem:dword, len:dword
|
||||
@ -1566,17 +1574,17 @@ tl_convert_to_str:
|
||||
|
||||
align 4
|
||||
.str:
|
||||
mov ecx,0x0a ;задается система счисления изменяются регистры ebx,eax,ecx,edx входные параметры eax - число
|
||||
;преревод числа в ASCII строку входные данные ecx=система счисленя edi адрес куда записывать, будем строку, причем конец переменной
|
||||
cmp eax,ecx ;сравнить если в eax меньше чем в ecx то перейти на @@-1 т.е. на pop eax
|
||||
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬ áç¨á«¥¨ï ¨§¬¥ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤ë¥ ¯ à ¬¥âàë eax - ç¨á«®
|
||||
;¯à¥à¥¢®¤ ç¨á« ¢ ASCII áâà®ªã ¢å®¤ë¥ ¤ ë¥ ecx=á¨á⥬ áç¨á«¥ï edi ¤à¥á ªã¤ § ¯¨áë¢ âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®¥æ ¯¥à¥¬¥®©
|
||||
cmp eax,ecx ;áà ¢¨âì ¥á«¨ ¢ eax ¬¥ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ @@-1 â.¥. pop eax
|
||||
jb @f
|
||||
xor edx,edx ;очистить edx
|
||||
div ecx ;разделить - остаток в edx
|
||||
push edx ;положить в стек
|
||||
;dec edi ;смещение необходимое для записи с конца строки
|
||||
call .str ;перейти на саму себя т.е. вызвать саму себя и так до того момента пока в eax не станет меньше чем в ecx
|
||||
xor edx,edx ;®ç¨áâ¨âì edx
|
||||
div ecx ;à §¤¥«¨âì - ®áâ ⮪ ¢ edx
|
||||
push edx ;¯®«®¦¨âì ¢ á⥪
|
||||
;dec edi ;ᬥ饨¥ ¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®æ áâப¨
|
||||
call .str ;¯¥à¥©â¨ á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥â ¯®ª ¢ eax ¥ á⠥⠬¥ìè¥ ç¥¬ ¢ ecx
|
||||
pop eax
|
||||
@@: ;cmp al,10 ;проверить не меньше ли значение в al чем 10 (для системы счисленя 10 данная команда - лишная))
|
||||
or al,0x30 ;данная команда короче чем две выше
|
||||
stosb ;записать элемент из регистра al в ячеку памяти es:edi
|
||||
@@: ;cmp al,10 ;¯à®¢¥à¨âì ¥ ¬¥ìè¥ «¨ § 票¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥ï 10 ¤ ï ª®¬ ¤ - «¨è ï))
|
||||
or al,0x30 ;¤ ï ª®¬ ¤ ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
|
||||
stosb ;§ ¯¨á âì í«¥¬¥â ¨§ ॣ¨áâà al ¢ ï祪㠯 ¬ï⨠es:edi
|
||||
ret
|
BIN
programs/develop/kol_f_edit/docs/about.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_auto.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_code.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_ifun.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_libr.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_stru.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_type.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
programs/develop/kol_f_edit/docs/prop_vari.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
programs/develop/kol_f_edit/docs/property.png
Normal file
After Width: | Height: | Size: 748 B |
160
programs/develop/kol_f_edit/docs/readme.htm
Normal file
@ -0,0 +1,160 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Оглавление</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
|
||||
<style>
|
||||
body
|
||||
{
|
||||
font-size: 15px;
|
||||
font-family: "Bookman Old Style";
|
||||
color: black;
|
||||
text-align: justify;
|
||||
}
|
||||
h1 { color: green; font-size: 23px; }
|
||||
h2 { color: green; font-size: 21px; }
|
||||
h3 { color: green; font-size: 19px; }
|
||||
h4 { color: #803f00; font-size: 17px; }
|
||||
i { color: #0099cc; }
|
||||
b { color: #0099cc; }
|
||||
p {
|
||||
text-indent: 1em;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 2px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
ol, ul, dl{
|
||||
margin-top: 3px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
pre
|
||||
{
|
||||
padding: 2px;
|
||||
padding-left: 20px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
font-family: "Courier New";
|
||||
font-size: 15px;
|
||||
color: #004000;
|
||||
background-color: #ffd0ff;
|
||||
}
|
||||
table
|
||||
{
|
||||
font-size: 15px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Kol_f_edit версия от 22.12.2010</h1>
|
||||
<p>Оглавление</p>
|
||||
<ul>
|
||||
<li>О программе</li>
|
||||
<li><a href="#algor">Алгоритм работы с программой</a></li>
|
||||
<li><a href="#v_obj">Виды объектов</a></li>
|
||||
<ul>
|
||||
<li><a href="#obj_type">Тип даного</a></li>
|
||||
<li><a href="#obj_vari">Переменная</a></li>
|
||||
<li><a href="#obj_stru">Структура</a></li>
|
||||
<li><a href="#obj_code">Asm код</a></li>
|
||||
<li><a href="#obj_auto">Авто код</a></li>
|
||||
<li><a href="#obj_libr">Импорт библиотеки</a></li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2>О программе</h2>
|
||||
<p>Программа для автоматизации создания интерфейса.
|
||||
Многие функции программы пока еще не сделаны, потому возможности ее практического использования минимальные.
|
||||
Лицензия свободная.</p>
|
||||
<p><img src="about.png"></p>
|
||||
<p>Внешний вид программы.</p>
|
||||
|
||||
<h2><a name="algor">Алгоритм работы с программой</a></h2>
|
||||
<p>1) Открываем шаблон программы из файла <b>min_prog.ced</b> или <b>box_l.ced</b>
|
||||
(min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj, планируеться добавление других шаблонов</i>)</p>
|
||||
<p>2) Редактируем объекты в подключенном файле <b>*.ced</b></p>
|
||||
<p>3) Создаем <b>*.asm</b> код в текстовом окне кнопкой на панели. Сохраняем <b>*.asm</b> код на диск (<i>работоспособность получившегося файла не гарантируется, т. к. многие элементы еще доконца не запрограмированы</i>)</p>
|
||||
<p>4) Редактируем получившийся <b>*.asm</b> файл любым текстовым редактором</p>
|
||||
|
||||
<h2><a name="v_obj">Виды объектов</a></h2>
|
||||
<p>Програмный код создается на основе свойств объектов, внесенных в файл проэкта. Все объекты внутри програмы представляються структурами вида:</p>
|
||||
<pre>struct object
|
||||
id dd ? ;идентификатор объекта
|
||||
txt rb MAX_LEN_OBJ_TXT ;текстовые свойства
|
||||
lvl db 0
|
||||
clo db 0
|
||||
typid dd ? ;номер объекта определяющего тип переменной
|
||||
modif dd ? ;битовые свойства
|
||||
ends</pre>
|
||||
<p>В зависимости от вида объекта не все его параметры могут использоваться.
|
||||
Большая часть свойств объекта задается параметрами: <b>txt</b> (текстовые свойства), <b>typid</b> и <b>modif</b> (битовые свойства).
|
||||
Редактирование оъектов совершается через окно свойств объекта.
|
||||
При создании объекта текстовые свойства вносятся в текстовые поля (элементы editbox слевой стороны окна);
|
||||
битовые свойства задаются флажками (находятся справой стороны в нижнем углу окна) а тип объекта выбирается из списка, который доступен только при редактировании переменных (находятся справой стороны в верхнем углу окна).</p>
|
||||
<p>Для открытия окна со свойствами объекта нужно выбрать редактируемый объект и нажать <b>[Enter]</b> или кнопку <img src="property.png"> на панели инструментов.</p>
|
||||
|
||||
<h3><a name="obj_type">Тип даного</a></h3>
|
||||
<img src="prop_type.png">
|
||||
<p>Переменные в програмном коде имеют разные типы данных. Этот объект служит для задания типов данных, с которыми в последствии можно связывать объекты переменных. Один объект типа данных может много раз использоваться для задания типов переменных.</p>
|
||||
|
||||
<h3><a name="obj_vari">Переменная</a></h3>
|
||||
<img src="prop_vari.png">
|
||||
<p>Объект переменной содержит 3 текстовых свойства: 1) имя переменной, 2) значение по умолчанию, 3) комментарий;
|
||||
и одну ссылку на объект типа данного или объект структуры.</p>
|
||||
|
||||
<h3><a name="obj_stru">Структура</a></h3>
|
||||
<img src="prop_stru.png">
|
||||
<p>Объект структуры содержит 2 текстовых свойства: 1) имя структуры, 2) параметры для макроса. Свойство <i>параметры для макроса</i> не обязательно для заполнения.
|
||||
Структура должна содержать в себе переменные. Все объекты переменных структуры должны быть расположены уровнем ниже чем объект структуры, таким образом программа при создании кода определит где находится начало и конец данных структуры.</p>
|
||||
|
||||
<h3><a name="obj_code">Asm код</a></h3>
|
||||
<img src="prop_code.png">
|
||||
<p>Объект содержащий програмный код, который вставляется в генерируемую программу.
|
||||
Длина кода ограничивается размером константы MAX_LEN_OBJ_TXT (200 символов).
|
||||
Подобный объект нужен для задания каких-либо готовых пользовательских функций или для выхода из нестандартных заранее не предусмотренных ситуаций.
|
||||
Может возникнуть ситуация, когда через использование других объектов решение задачи может оказаться нецелесообразным, например такой код:</p>
|
||||
<pre>struct p
|
||||
a dd ?
|
||||
b dd ?
|
||||
ends</pre>
|
||||
<p>Можно создать из 3-х обектов: 1-на структура и 2 переменные или обойтись 1-м объектом <i>asm кода</i>.</p>
|
||||
|
||||
<h3><a name="obj_auto">Авто код</a></h3>
|
||||
<img src="prop_auto.png">
|
||||
<p>Для програмирования некоторых объектов необходимо написание кода в разных местах программы.
|
||||
Но один объект не может создавать свой код в разных местах. Для решения этой задачи был создан объект <b>авто кода</b>.
|
||||
Он может автоматически создавать коды других объектов.
|
||||
Этот объект содержит текстовое свойство, которое используется как подсказка пользователю, но в програмный код не попадает.
|
||||
Также содержит флаги, от которых зависит какой именно код будет создаваться, вот они:</p>
|
||||
<ul>
|
||||
<li>первоначальные настройки элементов</li>
|
||||
<li>события от мыши</li>
|
||||
<li>коды элементов</li>
|
||||
<li>нажатия на кнопки</li>
|
||||
</ul>
|
||||
<p>Этот объект работает в связке с другими объектами, а сам по себе никакого кода не создает.</p>
|
||||
|
||||
<h3><a name="obj_libr">Импорт библиотеки</a></h3>
|
||||
<img src="prop_libr.png">
|
||||
<p>Данный объект служит для создания структуры импорта библиотеки. Содержит параметры:</p>
|
||||
<ul>
|
||||
<li>имя библиотеки</li>
|
||||
<li>путь к системной директории для поиска библиотеки</li>
|
||||
<li>метка используемая при импорте</li>
|
||||
<li>приставка, которая будет добавляться перед именем каждой импортируемой функции</li>
|
||||
<li>текст ошибки который появляется если библиотека не найдена</li>
|
||||
<li>текст ошибки который появляется если возникли проблемы с импортом функций из библиотеки</li>
|
||||
</ul>
|
||||
<p>Для создания програмного кода этого объекта нужен объект <a href="#obj_auto">авто кода</a> с включенной опцией <b>коды элементов</b>.
|
||||
Этот объект используется вместе с объектами <b>функция из библиотеки</b>, которые должны быть дочерними для него.</p>
|
||||
|
||||
<h3></h3>
|
||||
<p></p>
|
||||
|
||||
<h2>Автор</h2>
|
||||
<p>Игорь А. (IgorA) - разработка программы.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -20,7 +20,7 @@ include 'obj_codes.inc'
|
||||
|
||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
|
||||
|
||||
hed db 'kol_f_edit 18.12.10',0
|
||||
hed db 'kol_f_edit 22.12.10',0
|
||||
|
||||
sizeof.TreeList equ 20 ;need for element 'tree_list'
|
||||
|
||||
@ -37,7 +37,7 @@ buf2d_bits equ byte[edi+20] ;
|
||||
|
||||
MAX_CED_OBJECTS equ 200
|
||||
MAX_OPT_FIELDS equ 11
|
||||
MAX_OBJ_TYPES equ 18 ;¬ ªá¨¬ «ì®¥ ç¨á«® ®¡ê¥ªâ®¢
|
||||
MAX_OBJ_TYPES equ 17 ;¬ ªá¨¬ «ì®¥ ç¨á«® ®¡ê¥ªâ®¢
|
||||
MAX_OBJ_CAPTIONS equ 1000 ;à §¬¥à ¤®¯®«¨â¥«ìëå ¯®¤¯¨á¥© ¯®¤¯¨á¥©
|
||||
WND_CAPT_COLOR equ 0xb0d0ff
|
||||
BUF_SIZE equ 1000
|
||||
@ -58,8 +58,8 @@ BIT_MOD_CHE_B equ 3 ;᭨
|
||||
BIT_MOD_TXT_ASCII_0 equ 0 ;⥪áâ § ª 稢. 0
|
||||
BIT_MOD_TXT_NO_TRAN equ 1 ;⥪á⠯஧à çë©
|
||||
BIT_MOD_TXT_CHAR2 equ 2 ;⥪áâ 2-¬ èà¨ä⮬
|
||||
;CPP_MOD_EDIT_FOC equ 1 ;EditBox ¢ 䮪ãá¥
|
||||
;CPP_MOD_EDIT_FIO equ 2 ;
|
||||
BIT_MOD_EDIT_FOC equ 0 ;EditBox ¢ 䮪ãá¥
|
||||
BIT_MOD_EDIT_FIO equ 1 ;
|
||||
;CPP_MOD_RE_GR equ 1 ;£à ¤¨¥âë© ¯àאַ㣮«ì¨ª
|
||||
BIT_MOD_BUT_NFON equ 0 ;á⨫ì Button ¥ à¨á®¢ âì ª®¯ªã
|
||||
BIT_MOD_BUT_NBORD equ 1 ;á⨫ì Button ¥ à¨á®¢ âì £à ¨æã
|
||||
@ -121,7 +121,8 @@ struct ObjOpt
|
||||
caption rb MAX_OPT_CAPTION
|
||||
Col rw MAX_OPT_FIELDS
|
||||
img rw MAX_OPT_FIELDS ;¨¤¥ªáë ª à⨮ª (¢ ä ©«¥ 'icon.bmp')
|
||||
bit_prop dd 0 ;¡¨â®¢ë¥ ᢮©áâ¢
|
||||
bit_prop dd 0 ;¡¨â®¢ë¥ ᢮©á⢠(¯®¤¯¨á¨, §¢ ¨ï)
|
||||
bit_val dd 0 ;¡¨â®¢ë¥ ᢮©á⢠(§ 票ï, ª®áâ âë)
|
||||
ends
|
||||
|
||||
SKIN_H equ 22
|
||||
@ -728,7 +729,7 @@ proc get_obj_npp, p_obj_str:dword
|
||||
pop edx
|
||||
@@:
|
||||
cmp edx,0
|
||||
je @f
|
||||
je .no_exist
|
||||
cmp edx,ebx
|
||||
je @f
|
||||
|
||||
@ -736,6 +737,8 @@ proc get_obj_npp, p_obj_str:dword
|
||||
stdcall [tl_node_poi_get_next_info], edx,tree2
|
||||
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
jmp @b
|
||||
.no_exist: ;ª®£¤ ¨¤¥â áá뫪 ¥ áãé¥áâ¢ãî騩 ®¡ê¥ªâ
|
||||
xor eax,eax ;®¡ã«ï¥¬ 㪠§ ⥫ì, çâ®-¡ë ¥ á®åà ïâì ¢ ä ©« ¬ãá®à
|
||||
@@:
|
||||
pop edx ebx
|
||||
ret
|
||||
@ -1209,7 +1212,7 @@ import_buf2d_lib:
|
||||
buf2d_line dd sz_buf2d_line
|
||||
buf2d_rect_by_size dd sz_buf2d_rect_by_size
|
||||
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
|
||||
buf2d_circle dd sz_buf2d_circle
|
||||
;buf2d_circle dd sz_buf2d_circle
|
||||
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
|
||||
@ -1217,10 +1220,10 @@ import_buf2d_lib:
|
||||
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||
buf2d_cruve_bezier dd sz_buf2d_cruve_bezier
|
||||
;buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||
buf2d_draw_text dd sz_buf2d_draw_text
|
||||
buf2d_crop_color dd sz_buf2d_crop_color
|
||||
;buf2d_crop_color dd sz_buf2d_crop_color
|
||||
buf2d_offset_h dd sz_buf2d_offset_h
|
||||
dd 0,0
|
||||
sz_lib_init db 'lib_init',0
|
||||
@ -1232,7 +1235,7 @@ dd 0,0
|
||||
sz_buf2d_line db 'buf2d_line',0
|
||||
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª , 2-ï ª®®à¤¨ â § ¤ ¯® à §¬¥àã
|
||||
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
|
||||
sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮áâ¨
|
||||
;sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮áâ¨
|
||||
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
|
||||
@ -1240,10 +1243,10 @@ dd 0,0
|
||||
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||
sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
|
||||
;sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||
;sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||
sz_buf2d_offset_h db 'buf2d_offset_h',0
|
||||
|
||||
align 4
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
include 'obj_codes.inc'
|
||||
|
||||
macro ObjOpt id,bl_type,graph,info,caption,Col,img,bit_prop
|
||||
macro ObjOpt id,bl_type,graph,info,caption,Col,img,bit_prop,bit_val
|
||||
{
|
||||
dd id
|
||||
db bl_type
|
||||
@ -13,7 +13,8 @@ rb @b+30-$
|
||||
rb @b+MAX_OPT_CAPTION-$
|
||||
dw Col
|
||||
dw img ;¨¤¥ªáë ª à⨮ª (¢ ä ©«¥ 'icon.bmp')
|
||||
dd bit_prop+0
|
||||
dd bit_prop+0 ;㪠§ â¥«ì §¢ ¨ï ¡¨â®¢ëå ᢮©áâ¢
|
||||
dd bit_val+0 ;㪠§ â¥«ì § 票ï (ª®áâ âë) ¡¨â®¢ëå ᢮©áâ¢
|
||||
}
|
||||
|
||||
ObjOpt C_TDF, 0,0,'’¨¯ ¤ ®£®','',\
|
||||
@ -37,14 +38,14 @@ ObjOpt C_EDB, 1,1,'
|
||||
'¨¬ï áâàãªâãàë editbox*è¨à¨ ¯®«ï*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*梥â ä® *梥⠢뤥«¥¨ï ¯à¨ 㤥ন¢ ¨¨ shift ¨«¨ ¬ë誮©*梥â à ¬ª¨*梥â à ¬ª¨ ¯à¨ ¥ ªâ¨¢®¬ ¯®«¥*梥â ⥪áâ *¬ ªá¨¬ «ì ï ¤«¨ ⥪áâ * ç «ìë© â¥ªáâ',\
|
||||
<30, 40, 50, 60, 80,100,120,140,160,170, 0>,\
|
||||
<10, 26, 15, 16, 25, 25, 25, 25, 25, -1, 4>,\
|
||||
txt_bit_edit
|
||||
txt_bit_edit,txt_bit_edit.v
|
||||
ObjOpt C_OPT, 1,1,'<27> ¤¨® ª®¯ª ','¨¬ï*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*梥â ä® ¢ãâà¨*梥â à ¬ª¨ ¨ ¢ãâà. £ «®çª¨*梥â ⥪áâ *¯®¤¯¨áì*®âáâ㯠¤® ¤¯¨á¨*à §¬¥à ª¢ ¤à â ',\
|
||||
<40, 50, 60, 80,100,120,180,190, 0, 0, 0>,\
|
||||
< 9, 15, 16, 25, 25, 25, 4, 26, 27, -1, -1>
|
||||
ObjOpt C_CHB, 1,1,'”« ¦®ª','¨¬ï áâàãªâãàë*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨ *¢ëá®â *®âáâ㯠¤® ¤¯¨á¨*梥â ä® ¢ãâà¨*梥â à ¬ª¨ ¨ ¢ãâà. £ «®çª¨*梥â ⥪áâ *¯®¤¯¨áì',\
|
||||
<40, 50, 60, 70, 80, 90,110,130,150, 0, 0>,\
|
||||
< 8, 15, 16, 26, 27, 26, 25, 25, 25, 4,-1>,\
|
||||
txt_bit_che
|
||||
txt_bit_che,txt_bit_che.v
|
||||
ObjOpt C_TXT, 1,0,'asm ª®¤','',\
|
||||
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
|
||||
<11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
|
||||
@ -52,9 +53,6 @@ ObjOpt C_WND, 1,1,'
|
||||
<98,100,110,120,130,150,170, 0, 0, 0, 0>,\
|
||||
<12, -1, 15, 16, 26, 27, 25, 25, -1, -1, -1>,\
|
||||
txt_bit_wnd
|
||||
ObjOpt C_COM, 1,0,'Š®¬¬¥â ਩','áâப ª®¬¬¥â à¨ï',\
|
||||
< 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
|
||||
< 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1>
|
||||
ObjOpt C_INC, 1,0,'‚ª«î票¥ ä ©« ','¨¬ï ä ©« *ª®¬¬¥â ਩',\
|
||||
<100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\
|
||||
< 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1>
|
||||
@ -68,7 +66,7 @@ ObjOpt C_IFN, 1,0,'
|
||||
ObjOpt C_DTT, 1,1,'<27>¨á®¢ ¨¥ ⥪áâ ','⥪á⮢ ï áâப *ª®®à¤¨ â ¯® x*ª®®à¤¨ â ¯® y*梥â ⥪áâ *梥â ä® (¥á«¨ ¥áâì)',\
|
||||
<40, 50, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\
|
||||
< 4, 15, 16, 25, 25, -1, -1, -1, -1, -1, -1>,\
|
||||
txt_bit_caption
|
||||
txt_bit_caption,txt_bit_caption.v
|
||||
ObjOpt C_REC, 1,1,'<27>àאַ㣮«ì¨ª','梥â*®âáâ㯠᫥¢ *®âáâ㯠ᢥàåã*è¨à¨ *¢ëá®â ',\
|
||||
<20, 40, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\
|
||||
<25, 15, 16, 26, 27, -1, -1, -1, -1, -1, -1>
|
||||
@ -95,11 +93,21 @@ txt_bit_wnd db '
|
||||
txt_bit_edit db '¢ 䮪ãá¥',0
|
||||
db 'æ¨äàë ®â 0-9',0
|
||||
db 0
|
||||
.v:
|
||||
db 'ed_focus',0
|
||||
db 'ed_figure_only',0
|
||||
db 0
|
||||
txt_bit_che db 'check_box ¢ë¡à ',0
|
||||
db '⥪áâ c¢¥àåã',0
|
||||
db '⥪áâ ¯® æ¥âàã',0
|
||||
db '⥪áâ c¨§ã',0
|
||||
db 0
|
||||
.v:
|
||||
db 'ch_flag_en',0
|
||||
db 'ch_flag_top',0
|
||||
db 'ch_flag_middle',0
|
||||
db 'ch_flag_bottom',0
|
||||
db 0
|
||||
txt_bit_but db '¥ à¨á®¢ âì ª®¯ªã',0
|
||||
db '¥ à¨á®¢ âì £à ¨æ㠯ਠ¦ ⨨',0
|
||||
db 0
|
||||
@ -107,5 +115,10 @@ txt_bit_caption db '
|
||||
db '§ «¨¢ª ä® ',0
|
||||
db '2-© èà¨äâ',0
|
||||
db 0
|
||||
.v:
|
||||
db '0x80000000',0
|
||||
db '0x40000000',0
|
||||
db '0x10000000',0
|
||||
db 0
|
||||
txt_bit_ifn db '§ ª®¬¥â¨à®¢ âì äãªæ¨î',0
|
||||
db 0
|
||||
|
@ -6,9 +6,8 @@ C_TDF equ 'Type' ;typedef
|
||||
C_ACO equ 'Auto' ;𨯂漅<EFBFBD>漼蟡嶊言 狙月 (auto code)
|
||||
C_STR equ ('s' shl 24) ;struct
|
||||
C_INC equ ('#' shl 24) ;include
|
||||
C_TXT equ ('d' shl 24) ;¡«®ª ª®¤ (¤ ëå)
|
||||
C_TXT equ 'Code' ;¡«®ª ª®¤ (¤ ëå)
|
||||
C_VAR equ ('-' shl 24) ;砲鄍洛限𩤃
|
||||
C_COM equ (';' shl 24) ;ª®¬¬¥â ਩
|
||||
C_WND equ ('w' shl 24) ;悚陋
|
||||
C_CHB equ 'ChkB' ;CheckBox
|
||||
C_OPT equ ('o' shl 24) ;OptionBox
|
||||
|
@ -1,70 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Оглавление</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
|
||||
<style>
|
||||
body
|
||||
{
|
||||
font-size: 15px;
|
||||
font-family: "Bookman Old Style";
|
||||
color: black;
|
||||
text-align: justify;
|
||||
}
|
||||
h1 { color: green; font-size: 23px; }
|
||||
h2 { color: green; font-size: 21px; }
|
||||
h3 { color: green; font-size: 19px; }
|
||||
h4 { color: #803f00; font-size: 17px; }
|
||||
i { color: #0099cc; }
|
||||
b { color: #0099cc; }
|
||||
p {
|
||||
text-indent: 1em;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 2px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
ol, ul, dl{
|
||||
margin-top: 3px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
pre
|
||||
{
|
||||
padding: 2px;
|
||||
padding-left: 20px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
font-family: "Courier New";
|
||||
font-size: 15px;
|
||||
color: #004000;
|
||||
background-color: #ffd0ff;
|
||||
}
|
||||
table
|
||||
{
|
||||
font-size: 15px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Kol_f_edit версия от 20.11.2010</h1>
|
||||
<h2>О программе</h2>
|
||||
<p>Программа для автоматизации создания интерфейса.
|
||||
Многие функции программы пока еще не сделаны, потому возможности ее практического использования минимальные.
|
||||
Лицензия свободная.</p>
|
||||
<p><img src="about.png"></p>
|
||||
<p>Внешний вид программы.</p>
|
||||
|
||||
<h2>Алгоритм работы с программой</h2>
|
||||
<p>1) Открываем шаблон программы из файла <b>min_prog.ced</b> или <b>box_l.ced</b>
|
||||
(min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj, планируеться добавление других шаблонов</i>)</p>
|
||||
<p>2) Редактируем объекты в подключенном файле <b>*.ced</b> (<i>более подробные инструкции по редактированию добавлю когда программа будет готова</i>)</p>
|
||||
<p>3) Создаем <b>*.asm</b> код в текстовом окне кнопкой на панели. Сохраняем <b>*.asm</b> код на диск (<i>работоспособность получившегося файла не гарантируется, т. к. многие элементы еще доконца не запрограмированы</i>)</p>
|
||||
<p>4) Редактируем получившийся <b>*.asm</b> файл любым текстовым редактором</p>
|
||||
|
||||
<h2>Автор</h2>
|
||||
<p>Игорь А. (IgorA) - разработка программы.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -62,7 +62,7 @@ table { font-size: 15px; }
|
||||
С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран.
|
||||
Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями, есть функция рисования лини пока на этом все.</p>
|
||||
|
||||
<p>Ïîñëåäíåå îáíîâëåíèå áèáëèîòåêè 02.11.10.</p>
|
||||
<p>Ïîñëåäíåå îáíîâëåíèå áèáëèîòåêè 22.12.10.</p>
|
||||
|
||||
<h1><a name="f_buf">Форматы буферов</a></h1>
|
||||
<p>Поддерживается 3 формата буферов.
|
||||
@ -161,7 +161,7 @@ buf_0:
|
||||
<p>Рисует в буфере изображение из другого буфера в указанных координатах, при этом учитывается прозрачность.
|
||||
Буфер который будет нарисован должен быть 8 битным, а тот в котором рисуют 24 битным.</p>
|
||||
|
||||
<h4>buf2d_cruve_bezier</h4>
|
||||
<h4>buf2d_curve_bezier</h4>
|
||||
<p>Рисует по трем точкам отрезок кривой безье.</p>
|
||||
|
||||
<h4>buf2d_convert_text_matrix</h4>
|
||||
@ -229,7 +229,7 @@ import_buf2d_lib:
|
||||
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||
buf2d_cruve_bezier dd sz_buf2d_cruve_bezier
|
||||
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||
buf2d_draw_text dd sz_buf2d_draw_text
|
||||
buf2d_crop_color dd sz_buf2d_crop_color
|
||||
@ -254,7 +254,7 @@ import_buf2d_lib:
|
||||
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||
sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
|
||||
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||
@ -274,5 +274,6 @@ import_buf2d_lib:
|
||||
<p>07.10.10 - доработана функция buf_bit_blt (при попытке нарисовать изображение за пределами правого края буфера приложение вызвавшее функцию падало).</p>
|
||||
<p>11.10.10 - исправлено задание цветов в некоторых функциях, красный и синий цвета поменял местами. Теперь цвета совпадают с сисемными функциями.</p>
|
||||
<p>02.11.10 - добавлена функция buf2d_flood_fill.</p>
|
||||
<p>22.12.10 - èçìåíåíî èìÿ ôóíêöèè buf2d_cruve_bezier íà buf2d_curve_bezier.</p>
|
||||
</body>
|
||||
</html>
|
@ -2164,7 +2164,7 @@ line_len4i:
|
||||
ret 4 ;8
|
||||
|
||||
align 4
|
||||
proc buf_cruve_bezier, buffer:dword, coord_p0:dword,coord_p1:dword,coord_p2:dword, color:dword
|
||||
proc buf_curve_bezier, buffer:dword, coord_p0:dword,coord_p1:dword,coord_p2:dword, color:dword
|
||||
locals
|
||||
delt_t dd ?
|
||||
opr_param dd ?
|
||||
@ -2179,7 +2179,7 @@ proc buf_cruve_bezier, buffer:dword, coord_p0:dword,coord_p1:dword,coord_p2:dwor
|
||||
; dc.SetPixel(xt,yt,255L);
|
||||
;}
|
||||
|
||||
mov edx,[color] ;set cruve color
|
||||
mov edx,[color] ;set curve color
|
||||
mov edi,[buffer]
|
||||
xor ebx,ebx
|
||||
xor ecx,ecx
|
||||
@ -2305,7 +2305,7 @@ EXPORTS:
|
||||
dd sz_buf2d_bit_blt, buf_bit_blt
|
||||
dd sz_buf2d_bit_blt_transp, buf_bit_blt_transp
|
||||
dd sz_buf2d_bit_blt_alpha, buf_bit_blt_alpha
|
||||
dd sz_buf2d_cruve_bezier, buf_cruve_bezier
|
||||
dd sz_buf2d_curve_bezier, buf_curve_bezier
|
||||
dd sz_buf2d_convert_text_matrix, buf_convert_text_matrix
|
||||
dd sz_buf2d_draw_text, buf_draw_text
|
||||
dd sz_buf2d_crop_color, buf_crop_color
|
||||
@ -2329,7 +2329,7 @@ EXPORTS:
|
||||
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||
sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
|
||||
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||
|
@ -1365,7 +1365,7 @@ import_buf2d_lib:
|
||||
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||
buf2d_cruve_bezier dd sz_buf2d_cruve_bezier
|
||||
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
||||
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||
buf2d_draw_text dd sz_buf2d_draw_text
|
||||
buf2d_crop_color dd sz_buf2d_crop_color
|
||||
@ -1386,7 +1386,7 @@ import_buf2d_lib:
|
||||
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||
sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0
|
||||
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
||||
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||
|