From 989c0ebf47cca69c8da20800060d5e112a9378a2 Mon Sep 17 00:00:00 2001
From: IgorA
Date: Tue, 10 Nov 2015 23:11:17 +0000
Subject: [PATCH] 1) update 'tree_list', functions use stdcall 2) update 5
programs for new 'tree_list'
git-svn-id: svn://kolibrios.org@5911 a494cfbc-eb01-0410-851d-a64ba20cac60
---
programs/develop/info3ds/data.inc | 4 +-
programs/develop/info3ds/info3ds.asm | 121 +-
programs/develop/info3ds/info_wnd_coords.inc | 29 +-
.../libraries/box_lib/trunk/box_lib.mac | 111 +-
.../trunk/doc/tree_list/info_treelist.htm | 112 +-
.../libraries/box_lib/trunk/tree_list.mac | 1428 ++++++++---------
programs/games/nu_pogodi/trunk/nu_pogod.asm | 87 +-
programs/other/planet_v/planet_v.asm | 474 +++---
programs/other/planet_v/tile_fun.inc | 238 ++-
programs/other/t_edit/t_button.inc | 4 +-
programs/other/t_edit/t_data.inc | 2 +-
programs/other/t_edit/t_edit.asm | 77 +-
programs/other/t_edit/wnd_k_words.inc | 23 +-
programs/other/t_edit_synt/te_syntax.asm | 43 +-
14 files changed, 1259 insertions(+), 1494 deletions(-)
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 ьюцэю ёўшЄ√трЄ№ шэЇюЁьрЎш■ ю єчырї ¤ыхьхэЄр, яЁш ¤Єюь эх ьхэ Єхъє∙хую яюыюцхэш ъєЁёюЁр. ╥. х. ьюцэю юЁурэшчютрЄ№ фюёЄєя ъ фрэ√ь ¤ыхьхэЄр т "Їюэютюь Ёхцшьх".
@@ -181,12 +168,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_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
@@ -230,36 +207,33 @@ pop edi esi ecx
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 ecx
col_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.