76,10 → 76,7 |
|
<h2><a name="fun_add">tl_node_add</a></h2> |
<p>Äîáàâëÿåò óçåë, â ïîçèöèþ óêàçàííóþ êóðñîðîì. Ïðèìåð äîáàâëåíèÿ óçëà:</p> |
<pre> push dword tree1 |
push dword 0x10002 |
push dword data_buffer |
call dword[tl_node_add]</pre> |
<pre> stdcall dword[tl_node_add], tree1,0x10002,data_buffer</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>0x10002</b> - ïàðàìåòðû óçëà (ñòàðøèå áàéòû 0x0001 - èíäåêñ èêîíêè, îòîáðàæàåìîé âîçëå óçëà; ìåíüøèé áàéò 0x02 - óðîâåíü âëîæåíîñòè óçëà); <b>data_buffer</b> - óêàçàòåëü íà äûííûå, äîáàâëÿåìûå â óçåë.</p> |
|
89,8 → 86,7 |
<h2><a name="fun_get_d">tl_node_get_data</a></h2> |
<p>Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà ïîä êóðñîðîì.</p> |
<p>Ïðèìåð 1:</p> |
<pre> stdcall [tl_node_get_data], tree1 |
pop eax</pre> |
<pre> stdcall [tl_node_get_data], tree1</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>eax</b> - óêàçàòåëü íà äûííûå óçëà.</p> |
|
98,14 → 94,14 |
<pre> 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</pre> |
pop edi esi ecx eax</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>NODE_SIZE</b> - ðàçìåð äûííûõ óçëà; |
<b>node_data</b> - êîïèÿ íà äûííûõ óçëà.</p> |
146,34 → 142,25 |
|
<h2><a name="fun_poi_gi">tl_node_poi_get_info</a></h2> |
<p>Áåðåò âíóòðåííèé óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:</p> |
<pre> push dword tree1 |
push dword 0 |
call dword[tl_node_poi_get_info] |
pop esi</pre> |
<pre> stdcall dword[tl_node_poi_get_info], tree1, 0</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>0</b> - ïîçèöèÿ óçëà, ñ êîòîðîãî áåðåòñÿ óêàçàòåëü; |
<b>esi</b> - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë.</p> |
<b>eax</b> - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë.</p> |
<p><b>Çàìå÷àíèå.</b> Åñëè óçåë ñ óêàçàííûì èíäåêñîì íå íàéäåí, â óêàçàòåëå âîçâðàùàåòñÿ 0.</p> |
|
<h2><a name="fun_poi_gni">tl_node_poi_get_next_info</a></h2> |
<p>Áåðåò óêàçàòåëü íà ñëåäóþùèé ýëåìåíò â öåïè, áåç ó÷åòà îòêðûòèÿ/çàêðûòèÿ äî÷åðíèõ óçëîâ. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:</p> |
<pre> push tree1 |
push esi |
call dword[tl_node_poi_get_next_info] |
pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó</pre> |
<pre> stdcall dword[tl_node_poi_get_next_info], tree1, eax</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>esi</b> - äî âûçîâà ôóíêöèè óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë, ïîñëå âûçîâà óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ ñëåäóùèé óçåë â öåïè.</p> |
<b>eax</b> - äî âûçîâà ôóíêöèè óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë, ïîñëå âûçîâà óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ ñëåäóùèé óçåë â öåïè.</p> |
<p><b>Çàìå÷àíèå.</b> Åñëè ñëåäóùèé óçåë íå íàéäåí, â óêàçàòåëå âîçâðàùàåòñÿ 0.</p> |
|
<h2><a name="fun_poi_gd">tl_node_poi_get_data</a></h2> |
<p>Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà óêàçàííîãî â óêàçàòåëå. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:</p> |
<pre> push dword tree1 |
push dword esi |
call dword[tl_node_poi_get_data] |
pop eax ;ïîëó÷àåì äàííûå óçëà</pre> |
<pre> stdcall dword[tl_node_poi_get_data], tree1,esi</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>esi</b> - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë; |
<b>eax</b> - óêàçàòåëü íà äàííûå óçëà, îïèñààíîãî â esi.</p> |
<b>eax</b> - óêàçàòåëü íà äàííûå óçëà, îïèñàííîãî â esi.</p> |
<p>Óêàçàòåëü, âîçâðàùàåìûé ôóíêöèåé <i>tl_node_poi_get_data</i> àíàëîãè÷åí óêàçàòåëþ âîçâðàùàåìîìó ôóíêöèåé <i>tl_node_get_data</i>. Îòëè÷èå ôóíêöèé â òîì, ÷òî <i>tl_node_poi_get_data</i> ðàáîòàåò áåç çàäåéñòâîâàíèÿ êóðñîðà. Ôóíêöèÿìè <i>tl_node_poi_get_info</i>, <i>tl_node_poi_get_next_info</i> è <i>tl_node_poi_get_data</i> ìîæíî ñ÷èòûâàòü èíôîðìàöèþ î óçëàõ ýëåìåíòà, ïðè ýòîì íå ìåíÿÿ òåêóùåãî ïîëîæåíèÿ êóðñîðà. Ò. å. ìîæíî îðãàíèçîâàòü äîñòóï ê äàíûì ýëåìåíòà â "ôîíîâîì ðåæèìå".</p> |
|
<h2><a name="fun_sme">tl_save_mem</a></h2> |
181,12 → 168,7 |
<pre> 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</pre> |
stdcall dword[tl_save_mem], tree1, 0, node_data, MEM_SIZE</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>0</b> - îïöèÿ ñîõðàíåíèÿ â íà÷àëî áëîêà ïàìÿòè (åñëè = 1, òî äîáàâëÿåò ýëåìåíò ïîñëå äðóãèõ ñîõðàíåííûõ ðàíåå); |
<b>node_data</b> - óêàçàòåëü íà áëîê ïàìÿòè; |
198,12 → 180,7 |
<pre> 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</pre> |
stdcall dword[tl_load_mem], tree1, 0, node_data, MEM_SIZE</pre> |
<p>ãäå: <b>tree1</b> - ñòðóêòóðà tree_list; |
<b>0</b> - èíäåêñ ñ÷èòûâàåìîãî ýëåìåíòà; |
<b>node_data</b> - óêàçàòåëü íà áëîê ïàìÿòè; |
217,11 → 194,11 |
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</pre> |
|
<h2><a name="version">version_tree_list</a></h2> |
230,8 → 207,12 |
<h1><a name="struc_tree_list">Ñòðóêòóðà tree_list</a></h1> |
<pre>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 |
{ |
.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 |
242,23 → 223,16 |
.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 |
.p_scroll dd p_scroll |
.on_press dd on_press |
}</pre> |
<p><b>info_size</b> - êîëè÷åñòâî áàéò, êîòîðîå áóäåò âûäåëåíî äëÿ êàæäîãî óçëà. ×àñòü ýòîé ïàìÿòè ïîëüçîâàòåëü ìîæåò èñïîëüçîâàòü äëÿ ñâîèõ öåëåé (ðåãóëèðóåòñÿ ÷åðåç <i>info_capt_offs</i> è <i>info_capt_len</i> ñì. ðèñ. 2) à îñòàëüíàÿ ÷àñòü áóäåò èñïîëüçîâàíà êàê ïîäïèñü óçëà.</p> |
274,7 → 248,7 |
<p><b>col_txt</b> - öâåò òåêñòà.</p> |
<p><b>capt_cy</b> - âûñîòà ñòðîêè äëÿ ïîäïèñè ââåðõó ýëåìåíòà, åñëè ìåíüøå 9 ïîäïèñü íå âûâîäèòñÿ.</p> |
<p><b>info_capt_len</b> - äëèííà òåêñòà äëÿ ïîäïèñè. Åñëè ðàâíî 0, òî äëèííà ñ÷èòàåòñÿ òàê: <i>info_size - info_capt_offs</i>.</p> |
<p><b>p_scrol</b> - óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà, ñâÿçàííîãî ñ äàííûì ýëåìåíòîì.</p> |
<p><b>p_scroll</b> - óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà, ñâÿçàííîãî ñ äàííûì ýëåìåíòîì.</p> |
<p><b>on_press</b> - óêàçàòåëü íà ôóíêöèþ, êîòîðàÿ áóäåò âûçâàíà ïðè íàæàòèè [<b>Enter</b>]. Åñëè óêàçàòåëü ðàâåí 0 òî íè÷åãî íå áóäåò âûçûâàòüñÿ.</p> |
|
<p><img src="info_size.png"></p> |
294,6 → 268,6 |
<p>Ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå óçëû îäíîãî óðîâíÿ).</p> |
|
<hr> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 30.09.10.</p> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 10.11.15.</p> |
</body> |
</html> |