diff --git a/programs/develop/info3ds/data.inc b/programs/develop/info3ds/data.inc index bb15d891d7..48bd0f6e1f 100644 --- a/programs/develop/info3ds/data.inc +++ b/programs/develop/info3ds/data.inc @@ -1,7 +1,7 @@ if lang eq ru -capt db 'info 3ds версия 05.11.15',0 ;подпись окна +capt db 'info 3ds версия 10.11.15',0 ;подпись окна else -capt db 'info 3ds version 05.11.15',0 ;window caption +capt db 'info 3ds version 10.11.15',0 ;window caption end if MAX_FILE_LEVEL equ 20 ;максимальный уровень вложенности блоков для анализа diff --git a/programs/develop/info3ds/info3ds.asm b/programs/develop/info3ds/info3ds.asm index 8f2f136b62..a6c041cd5e 100644 --- a/programs/develop/info3ds/info3ds.asm +++ b/programs/develop/info3ds/info3ds.asm @@ -66,16 +66,14 @@ macro load_image_file path,buf,size { ; stdcall mem.Alloc, dword size ;выделяем память для изображения mov [buf],eax - mov eax,70 ;70-я функция работа с файлами mov [run_file_70.Function], 0 mov [run_file_70.Position], 0 mov [run_file_70.Flags], 0 mov [run_file_70.Count], dword size - m2m [run_file_70.Buffer], [buf] + m2m [run_file_70.Buffer], eax mov byte[run_file_70+20], 0 mov [run_file_70.FileName], file_name - mov ebx,run_file_70 - int 0x40 ;загружаем файл изображения + mcall 70,run_file_70 ;загружаем файл изображения cmp ebx,0xffffffff je @f ;определяем вид изображения и переводим его во временный буфер image_data @@ -122,24 +120,23 @@ align 4 start: load_libraries l_libs_start,l_libs_end ;проверка на сколько удачно загузились библиотеки - mov ebp,lib_0 - cmp dword [ebp+ll_struc_size-4],0 - jz @f - mov ebp,lib_1 - cmp dword [ebp+ll_struc_size-4],0 - jz @f - mov ebp,lib_2 - cmp dword [ebp+ll_struc_size-4],0 - jz @f - mov ebp,lib_3 - cmp dword [ebp+ll_struc_size-4],0 - jz @f - mcall -1 ;exit not correct + cmp dword [lib_0+ll_struc_size-4],0 + jnz @f + cmp dword [lib_1+ll_struc_size-4],0 + jnz @f + cmp dword [lib_2+ll_struc_size-4],0 + jnz @f + cmp dword [lib_3+ll_struc_size-4],0 + jnz @f + jmp .lib @@: + mcall -1 ;exit not correct + .lib: mcall 48,3,sc,sizeof.system_colors mcall 40,0x27 stdcall [OpenDialog_Init],OpenDialog_data ;подготовка диалога + mov dword[w_scr_t1.type],1 stdcall dword[tl_data_init], tree1 ;системные иконки 16*16 для tree_list load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE @@ -221,9 +218,9 @@ end if ; stdcall [tl_node_get_data],tree1 - pop ebx - cmp ebx,0 + cmp eax,0 je @f + mov ebx,eax mov eax,dword[ebx] ;получаем значение сдвига выбранного блока относительно начала файла mov ecx,dword[ebx+4] ;размер блока stdcall hex_in_str, txt_3ds_offs.dig, eax,8 @@ -350,16 +347,12 @@ pushad sub eax,41 mov dword[tree1.box_width],eax add ax,word[tree1.box_left] - mov word[w_scr_t1.start_x],ax + mov word[w_scr_t1+sb_offs_start_x],ax add ax,16+5 mov word[buf_0.l],ax - mov eax,8 - mov ebx,(5 shl 16)+20 - mov ecx,(5 shl 16)+20 - mov edx,3 mov esi,[sc.work_button] - int 0x40 + mcall 8,(5 shl 16)+20,(5 shl 16)+20,3 mov ebx,(30 shl 16)+20 mov edx,4 @@ -372,19 +365,10 @@ pushad int 0x40 @@: - mov ebx,(85 shl 16)+20 - mov edx,6 ;окно с координатами - int 0x40 + mcall ,(85 shl 16)+20,,6 ;окно с координатами + mcall ,(110 shl 16)+20,,7 ;удаление блока - mov ebx,(110 shl 16)+20 - mov edx,7 ;удаление блока - int 0x40 - - mov eax,7 - mov ebx,[image_data_toolbar] - mov ecx,(16 shl 16)+16 - mov edx,(7 shl 16)+7 ;new - int 0x40 + mcall 7,[image_data_toolbar],(16 shl 16)+16,(7 shl 16)+7 ;new add ebx,IMAGE_TOOLBAR_ICON_SIZE mov edx,(32 shl 16)+7 ;open @@ -456,7 +440,7 @@ button: .exit: mov dword[tree1.data_img],0 mov dword[tree1.data_img_sys],0 - stdcall dword[tl_data_clear], tree1 + stdcall [tl_data_clear], tree1 stdcall [buf2d_delete],buf_0 stdcall [buf2d_delete],buf_1 ;удаляем буфер stdcall mem.Free,[image_data_toolbar] @@ -795,7 +779,7 @@ proc add_3ds_object, icon:dword,level:dword,size_bl:dword,info_bl:dword rep movsb mov byte[buffer+size_one_list-1],0 ;0 - символ конеца строки .no_capt: - stdcall [tl_node_add], buffer, ebx, tree1 + stdcall [tl_node_add], tree1, ebx, buffer stdcall [tl_cur_next], tree1 if debug stdcall print_err,sz_add_3ds_object,buffer+list_offs_text @@ -907,42 +891,40 @@ align 4 but_delete_chunk: pushad stdcall [tl_node_get_data],tree1 - pop ebx - cmp ebx,0 + cmp eax,0 je .end_f - cmp byte[ebx+list_offs_chunk_del],0 ;если блок защищен от удаления + cmp byte[eax+list_offs_chunk_del],0 ;если блок защищен от удаления jne .notify ;(1) копирование нижней части файла - mov edx,dword[ebx+4] ;размер блока + mov edx,dword[eax+4] ;размер блока sub [open_file_size],edx ;изменение размеров файла mov ecx,[open_file_size] - mov eax,dword[ebx] ;получаем значение сдвига выбранного блока относительно начала файла - sub ecx,eax ;ecx - размер нижней сдвигаемой части файла - add eax,dword[open_file_lif] ;получаем значение сдвига в памяти - mov edi,eax - mov esi,eax + mov ebx,dword[eax] ;получаем значение сдвига выбранного блока относительно начала файла + sub ecx,ebx ;ecx - размер нижней сдвигаемой части файла + add ebx,dword[open_file_lif] ;получаем значение сдвига в памяти + mov edi,ebx + mov esi,ebx add esi,edx - mov al,byte[ebx+list_offs_chunk_lev] ;берем уровень текущего узла + mov bl,byte[eax+list_offs_chunk_lev] ;берем уровень текущего узла rep movsb mov byte[can_save],1 ;(2) изменение размеров родительских блоков - cmp al,0 + cmp bl,0 je .end_2 .cycle_2: stdcall [tl_cur_perv], tree1 stdcall [tl_node_get_data],tree1 - pop ebx - cmp ebx,0 + cmp eax,0 je .end_2 - cmp byte[ebx+list_offs_chunk_lev],al + cmp byte[eax+list_offs_chunk_lev],bl jge .cycle_2 - mov al,byte[ebx+list_offs_chunk_lev] - mov ecx,[ebx] + mov bl,byte[eax+list_offs_chunk_lev] + mov ecx,[eax] add ecx,[open_file_lif] sub dword[ecx+2],edx - cmp al,0 ;если самый верхний узел, то al=0 + cmp bl,0 ;если самый верхний узел, то bl=0 jne .cycle_2 .end_2: @@ -1284,14 +1266,11 @@ import_box_lib: sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 - +align 4 mouse_dd dd 0x0 sc system_colors last_time dd 0 -align 16 -procinfo process_information - align 4 buf_0: dd 0 ;указатель на буфер изображения .l: dw 205 ;+4 left @@ -1311,32 +1290,18 @@ buf_1: dd 0 ;+16 color db 24 ;+20 bit in pixel +align 4 el_focus dd tree1 tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\ 16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,35,195-16,250, 16,list_offs_text,0, el_focus,\ w_scr_t1,0 align 4 -w_scr_t1: -.size_x dw 16 ;+0 -.start_x dw 0 -rb 2+2 -.btn_high dd 15 ;+8 -.type dd 1 ;+12 -.max_area dd 100 ;+16 -rb 4+4 -.bckg_col dd 0xeeeeee ;+28 -.frnt_col dd 0xbbddff ;+32 -.line_col dd 0 ;+36 -rb 4+2+2 -.run_x: -rb 2+2+2+2+4+4+4+4+4+4 -.all_redraw dd 0 ;+80 -.ar_offset dd 1 ;+84 +w_scr_t1 scrollbar 16,0, 3,0, 15, 100, 0,0, 0xeeeeee, 0xbbddff, 0, 1 - -align 4 +align 16 i_end: + procinfo process_information rb 1024 thread_coords: rb 1024 diff --git a/programs/develop/info3ds/info_wnd_coords.inc b/programs/develop/info3ds/info_wnd_coords.inc index 5f489fa574..61c64c5e17 100644 --- a/programs/develop/info3ds/info_wnd_coords.inc +++ b/programs/develop/info3ds/info_wnd_coords.inc @@ -30,12 +30,11 @@ pushad inc byte[prop_wnd_run] stdcall [tl_node_get_data],tree1 - pop ebx xor edx,edx mov dword[capt_p],txt_q - cmp ebx,0 + cmp eax,0 je .no_points - mov ebx,dword[ebx] ;получаем значение сдвига выбранного блока + mov ebx,dword[eax] ;получаем значение сдвига выбранного блока add ebx,dword[open_file_lif] cmp word[ebx],CHUNK_VERTLIST @@ -94,7 +93,7 @@ pushad stdcall str_cat, obj_point.text,esi stdcall str_cat, obj_point.text,Data_String loop @b - stdcall dword[tl_node_add], obj_point, (ID_ICON_DATA shl 16), tree3 + stdcall dword[tl_node_add], tree3,(ID_ICON_DATA shl 16),obj_point stdcall dword[tl_cur_next], tree3 dec edx cmp edx,0 @@ -207,12 +206,11 @@ prop_button: cmp ah,3 jne @f ;загрузка координат в editbox-ы - push ebx + push eax ebx stdcall [tl_node_get_data],tree3 - pop ebx - cmp ebx,0 + cmp eax,0 je .no_select_0 - mov ebx,[ebx] + mov ebx,[eax] mov word[NumberSymbolsAD],8 finit fld dword[ebx] @@ -231,16 +229,16 @@ prop_button: stdcall [edit_box_draw], edit2 stdcall [edit_box_draw], edit3 .no_select_0: - pop ebx + pop ebx eax + jmp prop_still @@: cmp ah,4 jne @f - push ebx ecx esi edi + push eax ebx ecx edi esi stdcall [tl_node_get_data],tree3 - pop ebx - cmp ebx,0 + cmp eax,0 je .no_select_1 - mov ebx,[ebx] + mov ebx,[eax] finit mov esi,string1 @@ -291,12 +289,13 @@ prop_button: stdcall str_cat, obj_point.text,esi stdcall str_cat, obj_point.text,Data_String loop .coord - stdcall dword[tl_node_set_data], obj_point, tree3 + stdcall dword[tl_node_set_data], tree3,obj_point stdcall dword[tl_draw], tree3 mov byte[can_save],1 ;для показа кнопки 'Сохранить' mov dword[offs_last_timer],0 ;для обновления блока в таймере .no_select_1: - pop edi esi ecx ebx + pop esi edi ecx ebx eax + jmp prop_still @@: cmp ah,1 diff --git a/programs/develop/libraries/box_lib/trunk/box_lib.mac b/programs/develop/libraries/box_lib/trunk/box_lib.mac index d60715c322..6f5454229c 100644 --- a/programs/develop/libraries/box_lib/trunk/box_lib.mac +++ b/programs/develop/libraries/box_lib/trunk/box_lib.mac @@ -283,66 +283,59 @@ macro option_boxes_set_sys_color color_table,group struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ - info_capt_len,el_focus, p_scrol,on_press { - .data_info dd 0 - .info_size dw info_size - .info_max_count dd info_max_count - .style dd style - .data_nodes dd 0 - .data_img dd 0 - .img_cx dw img_cx - .img_cy dw img_cy - .data_img_sys dd 0 - .ch_tim dd 0 - .ls_tim dd 0 - .tim_undo dd 0 - .cur_pos dd 0 - .col_bkg dd col_bkg - .col_zag dd col_zag - .col_txt dd col_txt - .box_left dd box_l - .box_top dd box_t - .box_width dd box_w - .box_height dd box_h - .capt_cy dw capt_cy - .info_capt_offs dw info_capt_offs - .info_capt_len dw info_capt_len - .el_focus dd el_focus - .p_scrol dd p_scrol - rb 4 - .on_activate dd 0 - .on_press dd on_press + info_capt_len,el_focus, p_scroll,on_press { +.box_left dd box_l +.box_top dd box_t +.box_width dd box_w +.box_height dd box_h +.data_info dd 0 +.info_size dw info_size +.info_max_count dd info_max_count +.style dd style +.data_nodes dd 0 +.data_img dd 0 +.img_cx dw img_cx +.img_cy dw img_cy +.data_img_sys dd 0 +.ch_tim dd 0 +.tim_undo dd 0 +.cur_pos dd 0 +.col_bkg dd col_bkg +.col_zag dd col_zag +.col_txt dd col_txt +.capt_cy dw capt_cy +.info_capt_offs dw info_capt_offs +.info_capt_len dw info_capt_len +.el_focus dd el_focus +.p_scroll dd p_scroll +.on_press dd on_press } -tl_data_info equ dword[edi] ;указатель на основные даные -tl_info_size equ word[edi +4] ;размер данных выделяемых для каждого узла (пользовательськие данные + текст для подписи) -tl_info_max_count equ dword[edi+6] ;максимальное количество узлов, которые можно добавить в элемент -tl_style equ dword[edi+10] ;стили элемента -tl_data_nodes equ dword[edi+14] ;указатель на структуры узлов -tl_data_img equ dword[edi+18] ;указатель на изображения с иконками узлов -tl_img_cx equ word[edi+22] ;ширина иконок -tl_img_cy equ word[edi+24] ;высота иконок -tl_data_img_sys equ dword[edi+26] ;указатель на системные изображения (стрелки, плюсики) -tl_ch_tim equ dword[edi+30] ;количество изменений в файле -tl_tim_undo equ dword[edi+38] ;количество отмененных действий -tl_cur_pos equ dword[edi+42] ;позиция курсора -tl_col_bkg equ dword[edi+46] ;цвет фона -tl_col_zag equ dword[edi+50] ;цвет заголовка -tl_col_txt equ dword[edi+54] ;цвет текста -tl_box_left equ dword[edi+58] -tl_box_top equ dword[edi+62] -tl_box_width equ dword[edi+66] -tl_box_height equ dword[edi+70] -tl_capt_cy equ word[edi+74] ;высота подписи -tl_info_capt_offs equ word[edi+76] ;сдвиг для начала текста (подписи узла) -tl_info_capt_len equ word[edi+78] ;длинна текста подписи узла (если = 0 то до конца структуры) -tl_el_focus equ dword[edi+80] ;указатель на структуру элемента в фокусе -tl_p_scrol equ dword[edi+84] ;указатель на структуру скроллинга -tl_on_press equ dword[edi+96] ;указатель на функцию, которая вызывается при нажатии Enter - -;data_info dd ? ;+ 0 указатель на основные даные -;ls_tim dd ? ;+34 время последнего сохранения -;on_activate dd ? ;+92 указатель на функцию при активировании узла +tl_box_left equ dword[edi] +tl_box_top equ dword[edi+ 4] +tl_box_width equ dword[edi+ 8] +tl_box_height equ dword[edi+12] +tl_data_info equ dword[edi+16] ;указатель на основные даные +tl_info_size equ word[edi+20] ;размер данных выделяемых для каждого узла (пользовательськие данные + текст для подписи) +tl_info_max_count equ dword[edi+22] ;максимальное количество узлов, которые можно добавить в элемент +tl_style equ dword[edi+26] ;стили элемента +tl_data_nodes equ dword[edi+30] ;указатель на структуры узлов +tl_data_img equ dword[edi+34] ;указатель на изображения с иконками узлов +tl_img_cx equ word[edi+38] ;ширина иконок +tl_img_cy equ word[edi+40] ;высота иконок +tl_data_img_sys equ dword[edi+42] ;указатель на системные изображения (стрелки, плюсики) +tl_ch_tim equ dword[edi+46] ;количество изменений в файле +tl_tim_undo equ dword[edi+50] ;количество отмененных действий +tl_cur_pos equ dword[edi+54] ;позиция курсора +tl_col_bkg equ dword[edi+58] ;цвет фона +tl_col_zag equ dword[edi+62] ;цвет заголовка +tl_col_txt equ dword[edi+66] ;цвет текста +tl_capt_cy equ word[edi+70] ;высота подписи +tl_info_capt_offs equ word[edi+72] ;сдвиг для начала текста (подписи узла) +tl_info_capt_len equ word[edi+74] ;длинна текста подписи узла (если = 0 то до конца структуры) +tl_el_focus equ dword[edi+76] ;указатель на структуру элемента в фокусе +tl_p_scroll equ dword[edi+80] ;указатель на структуру скроллинга +tl_on_press equ dword[edi+84] ;указатель на функцию, которая вызывается при нажатии Enter ;константы стиля tl_key_no_edit equ 1b ;элемент нельзя редактировать на клавиатуре (изменять уровни, удалять) @@ -355,7 +348,7 @@ tl_err_load_caption equ 1b ; tl_err_load_info_size equ 100b ;не совпадает размер информационной структуры при открытии tl_load_mode_add equ 0x20000 ;опция считывания в режиме добавления информации tl_save_load_heder_size equ 26 ;размер заголовка для записи/чтения элементов -tl_offs_box equ 58 ;начало BOX структуры для tree_list +tl_offs_box equ 0 ;начало BOX структуры для tree_list ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Basic macros for use TextEditor ; diff --git a/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm b/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm index 8a14a8473b..b1c62df84f 100644 --- a/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm +++ b/programs/develop/libraries/box_lib/trunk/doc/tree_list/info_treelist.htm @@ -76,10 +76,7 @@
─юсрты хЄ єчхы, т яючшЎш■ єърчрээє■ ъєЁёюЁюь. ╧ЁшьхЁ фюсртыхэш єчыр:
-push dword tree1 - push dword 0x10002 - push dword data_buffer - call dword[tl_node_add]+
stdcall dword[tl_node_add], tree1,0x10002,data_buffer
уфх: tree1 - ёЄЁєъЄєЁр tree_list; 0x10002 - ярЁрьхЄЁ√ єчыр (ёЄрЁ°шх срщЄ√ 0x0001 - шэфхъё шъюэъш, юЄюсЁрцрхьющ тючых єчыр; ьхэ№°шщ срщЄ 0x02 - єЁютхэ№ тыюцхэюёЄш єчыр); data_buffer - єърчрЄхы№ эр ф√ээ√х, фюсрты хь√х т єчхы.
@@ -89,8 +86,7 @@┴хЁхЄ єърчрЄхы№ эр фрээ√х (яюы№чютрЄхы№ёъшх ш яюфяшё№) шч єчыр яюф ъєЁёюЁюь.
╧ЁшьхЁ 1:
-stdcall [tl_node_get_data], tree1 - pop eax+
stdcall [tl_node_get_data], tree1
уфх: tree1 - ёЄЁєъЄєЁр tree_list; eax - єърчрЄхы№ эр ф√ээ√х єчыр.
@@ -98,14 +94,14 @@NODE_SIZE equ 200 node_data rb NODE_SIZE ......... -push ecx esi edi +push eax ecx esi edi stdcall [tl_node_get_data], tree1 - pop esi + mov esi,eax mov edi,node_data mov ecx,NODE_SIZE cld rep movsb -pop edi esi ecx+pop edi esi ecx eax
уфх: tree1 - ёЄЁєъЄєЁр tree_list; NODE_SIZE - ЁрчьхЁ ф√ээ√ї єчыр; node_data - ъюяш эр ф√ээ√ї єчыр.
@@ -146,34 +142,25 @@ pop edi esi ecx┴хЁхЄ тэєЄЁхээшщ єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ єчхы. ╧ЁшьхЁ шёяюы№чютрэш ЇєэъЎшш:
-push dword tree1 - push dword 0 - call dword[tl_node_poi_get_info] - pop esi+
stdcall dword[tl_node_poi_get_info], tree1, 0
уфх: tree1 - ёЄЁєъЄєЁр tree_list; 0 - яючшЎш єчыр, ё ъюЄюЁюую схЁхЄё єърчрЄхы№; -esi - єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ єчхы.
+eax - єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ єчхы.╟рьхўрэшх. ┼ёыш єчхы ё єърчрээ√ь шэфхъёюь эх эрщфхэ, т єърчрЄхых тючтЁр∙рхЄё 0.
┴хЁхЄ єърчрЄхы№ эр ёыхфє■∙шщ ¤ыхьхэЄ т Ўхяш, схч єўхЄр юЄъЁ√Єш /чръЁ√Єш фюўхЁэшї єчыют. ╧ЁшьхЁ шёяюы№чютрэш ЇєэъЎшш:
-push tree1 - push esi - call dword[tl_node_poi_get_next_info] - pop esi ;яхЁхїюфшь ъ ёыхфє∙хьє єчыє+
stdcall dword[tl_node_poi_get_next_info], tree1, eax
уфх: tree1 - ёЄЁєъЄєЁр tree_list; -esi - фю т√чютр ЇєэъЎшш єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ єчхы, яюёых т√чютр єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ ёыхфє∙шщ єчхы т Ўхяш.
+eax - фю т√чютр ЇєэъЎшш єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ єчхы, яюёых т√чютр єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ ёыхфє∙шщ єчхы т Ўхяш.╟рьхўрэшх. ┼ёыш ёыхфє∙шщ єчхы эх эрщфхэ, т єърчрЄхых тючтЁр∙рхЄё 0.
┴хЁхЄ єърчрЄхы№ эр фрээ√х (яюы№чютрЄхы№ёъшх ш яюфяшё№) шч єчыр єърчрээюую т єърчрЄхых. ╧ЁшьхЁ шёяюы№чютрэш ЇєэъЎшш:
-push dword tree1 - push dword esi - call dword[tl_node_poi_get_data] - pop eax ;яюыєўрхь фрээ√х єчыр+
stdcall dword[tl_node_poi_get_data], tree1,esi
уфх: tree1 - ёЄЁєъЄєЁр tree_list; esi - єърчрЄхы№ эр ёЄЁєъЄєЁє юяшё√тр■∙є■ єчхы; -eax - єърчрЄхы№ эр фрээ√х єчыр, юяшёррэюую т esi.
+eax - єърчрЄхы№ эр фрээ√х єчыр, юяшёрээюую т esi.╙ърчрЄхы№, тючтЁр∙рхь√щ ЇєэъЎшхщ tl_node_poi_get_data рэрыюушўхэ єърчрЄхы■ тючтЁр∙рхьюьє ЇєэъЎшхщ tl_node_get_data. ╬Єышўшх ЇєэъЎшщ т Єюь, ўЄю tl_node_poi_get_data ЁрсюЄрхЄ схч чрфхщёЄтютрэш ъєЁёюЁр. ╘єэъЎш ьш tl_node_poi_get_info, tl_node_poi_get_next_info ш tl_node_poi_get_data ьюцэю ёўшЄ√трЄ№ шэЇюЁьрЎш■ ю єчырї ¤ыхьхэЄр, яЁш ¤Єюь эх ьхэ Єхъє∙хую яюыюцхэш ъєЁёюЁр. ╥. х. ьюцэю юЁурэшчютрЄ№ фюёЄєя ъ фрэ√ь ¤ыхьхэЄр т "Їюэютюь Ёхцшьх".
MEM_SIZE equ 5000 node_data rb MEM_SIZE ......... - push dword tree1 - push dword 0 - push dword node_data - push dword MEM_SIZE - call dword[tl_save_mem] - pop eax+ stdcall dword[tl_save_mem], tree1, 0, node_data, MEM_SIZE
уфх: tree1 - ёЄЁєъЄєЁр tree_list; 0 - юяЎш ёюїЁрэхэш т эрўрыю сыюър ярь Єш (хёыш = 1, Єю фюсрты хЄ ¤ыхьхэЄ яюёых фЁєушї ёюїЁрэхээ√ї Ёрэхх); node_data - єърчрЄхы№ эр сыюъ ярь Єш; @@ -198,12 +180,7 @@ pop edi esi ecx
MEM_SIZE equ 5000 node_data rb MEM_SIZE ......... - push dword tree1 - push dword 0 - push dword node_data - push dword MEM_SIZE - call dword[tl_load_mem] - pop eax+ stdcall dword[tl_load_mem], tree1, 0, node_data, MEM_SIZE
уфх: tree1 - ёЄЁєъЄєЁр tree_list; 0 - шэфхъё ёўшЄ√трхьюую ¤ыхьхэЄр; node_data - єърчрЄхы№ эр сыюъ ярь Єш; @@ -217,11 +194,11 @@ pop edi esi ecx node_data rb MEM_SIZE ......... ;ёюїЁрэ хь фрээ√х т 'node_data' - stdcall dword[tl_save_mem], MEM_SIZE, node_data, 0, tree1 + stdcall dword[tl_save_mem], tree1, 0, node_data, MEM_SIZE pop eax ;ъюф ю°шсъш ......... ;яюыєўрхь ЁрчьхЁ фрээ√ї т 'node_data' - stdcall dword[tl_get_mem_size], node_data, tree1 + stdcall dword[tl_get_mem_size], tree1, node_data pop ecx ;ЁрчьхЁ фрээ√ї, фюыцхэ с√Є№ <= MEM_SIZE
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ - info_capt_len,el_focus, p_scrol,on_press + info_capt_len,el_focus, p_scroll,on_press { - .data_info dd 0 - .info_size dw info_size - .info_max_count dd info_max_count - .style dd style - .data_nodes dd 0 - .data_img dd 0 - .img_cx dw img_cx - .img_cy dw img_cy - .data_img_sys dd 0 - .ch_tim dd 0 - .ls_tim dd 0 - .tim_undo dd 0 - .cur_pos dd 0 - .col_bkg dd col_bkg - .col_zag dd col_zag - .col_txt dd col_txt - .box_left dd box_l - .box_top dd box_t - .box_width dd box_w - .box_height dd box_h - .capt_cy dw capt_cy - .info_capt_offs dw info_capt_offs - .info_capt_len dw info_capt_len - .el_focus dd el_focus - .p_scrol dd p_scrol - rb 4 - .on_activate dd 0 - .on_press dd on_press +.box_left dd box_l +.box_top dd box_t +.box_width dd box_w +.box_height dd box_h +.data_info dd 0 +.info_size dw info_size +.info_max_count dd info_max_count +.style dd style +.data_nodes dd 0 +.data_img dd 0 +.img_cx dw img_cx +.img_cy dw img_cy +.data_img_sys dd 0 +.ch_tim dd 0 +.tim_undo dd 0 +.cur_pos dd 0 +.col_bkg dd col_bkg +.col_zag dd col_zag +.col_txt dd col_txt +.capt_cy dw capt_cy +.info_capt_offs dw info_capt_offs +.info_capt_len dw info_capt_len +.el_focus dd el_focus +.p_scroll dd p_scroll +.on_press dd on_press }
info_size - ъюышўхёЄтю срщЄ, ъюЄюЁюх сєфхЄ т√фхыхэю фы ърцфюую єчыр. ╫рёЄ№ ¤Єющ ярь Єш яюы№чютрЄхы№ ьюцхЄ шёяюы№чютрЄ№ фы ётюшї Ўхыхщ (ЁхуєышЁєхЄё ўхЁхч info_capt_offs ш info_capt_len ёь. Ёшё. 2) р юёЄры№эр ўрёЄ№ сєфхЄ шёяюы№чютрэр ъръ яюфяшё№ єчыр.
info_max_count - ьръёшьры№эюх ъюышўхёЄтю єчыют, ъюЄюЁ√х ьюцэю фюсртшЄ№ т ¤ыхьхэЄ.
@@ -274,7 +248,7 @@ pop edi esi ecxcol_txt - ЎтхЄ ЄхъёЄр.
capt_cy - т√ёюЄр ёЄЁюъш фы яюфяшёш ттхЁїє ¤ыхьхэЄр, хёыш ьхэ№°х 9 яюфяшё№ эх т√тюфшЄё .
info_capt_len - фышээр ЄхъёЄр фы яюфяшёш. ┼ёыш Ёртэю 0, Єю фышээр ёўшЄрхЄё Єръ: info_size - info_capt_offs.
-p_scrol - єърчрЄхы№ эр ёЄЁєъЄєЁє ёъЁюыышэур, ёт чрээюую ё фрээ√ь ¤ыхьхэЄюь.
+p_scroll - єърчрЄхы№ эр ёЄЁєъЄєЁє ёъЁюыышэур, ёт чрээюую ё фрээ√ь ¤ыхьхэЄюь.
on_press - єърчрЄхы№ эр ЇєэъЎш■, ъюЄюЁр сєфхЄ т√чтрэр яЁш эрцрЄшш [Enter]. ┼ёыш єърчрЄхы№ Ёртхэ 0 Єю эшўхую эх сєфхЄ т√ч√трЄ№ё .
@@ -294,6 +268,6 @@ pop edi esi ecx╤Єшы№ эх юЄюсЁрцрхЄ єЁютэш (ъръ т ListBox тёх єчы√ юфэюую єЁютэ ).
─юъєьхэЄрЎш юсэюты ырё№ яюёыхфэшщ Ёрч 30.09.10.
+─юъєьхэЄрЎш юсэюты ырё№ яюёыхфэшщ Ёрч 10.11.15.