Rev 1609 | Rev 1705 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1374 | IgorA | 1 | |
2 | |||
3 |
|
||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 |
|
||
10 | |||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | |||
21 | |||
22 | |||
23 | |||
24 | |||
25 | |||
26 | |||
27 | |||
28 | |||
29 | |||
30 | |||
31 | |||
32 | |||
1634 | IgorA | 33 | |
34 | |||
35 | |||
1374 | IgorA | 36 | |
37 | |||
38 | |||
39 | |||
40 | |||
41 | |||
42 | |||
43 | |||
44 |
|
||
45 |
|
||
46 | |||
47 |
|
||
48 | |||
49 |
|
||
50 | |||
51 |
|
||
52 |
|
||
53 |
|
||
54 |
|
||
55 | |||
56 |
|
||
57 |
|
||
58 | |||
59 |
|
||
60 |
|
||
61 | Кнопки, которые не доступны если есть стиль tl_key_no_edit: [Enter], [Delete], [←], [→]. |
||
62 | Всегда доступны: [↑], [↓], [Page Up], [Page Dn], [Space]. |
||
63 | Функция проверяет включен ли режим scan кодов, и в случае необходимости сама преобразует коды. |
||
64 | |||
65 |
|
||
66 |
|
||
67 | |||
68 |
|
||
69 |
|
||
70 | |||
71 |
|
||
72 |
|
||
73 | |||
74 |
|
||
75 |
|
||
76 | |||
77 |
|
||
78 |
|
||
1634 | IgorA | 79 | push dword tree1 |
80 | push dword 0x10002 |
||
81 | push dword data_buffer |
||
82 | call dword[tl_node_add] |
||
1374 | IgorA | 83 |
|
84 | 0x10002 - параметры узла (старшие байты 0x0001 - индекс иконки, отображаемой возле узла; меньший байт 0x02 - уровень вложености узла); data_buffer - указатель на дынные, добавляемые в узел. |
||
85 | |||
86 |
|
||
87 |
|
||
88 | |||
89 |
|
||
90 |
|
||
1609 | IgorA | 91 |
|
92 | stdcall [tl_node_get_data], tree1 |
||
93 | pop eax |
||
94 |
|
||
95 | eax - указатель на дынные узла. |
||
1374 | IgorA | 96 | |
1609 | IgorA | 97 |
|
98 | NODE_SIZE equ 200 |
||
99 | node_data rb NODE_SIZE |
||
100 | ......... |
||
101 | push ecx esi edi |
||
102 | stdcall [tl_node_get_data], tree1 |
||
103 | pop esi |
||
104 | mov edi,node_data |
||
105 | mov ecx,NODE_SIZE |
||
106 | cld |
||
107 | rep movsb |
||
108 | pop edi esi ecx |
||
109 |
|
||
110 | NODE_SIZE - размер дынных узла; |
||
111 | node_data - копия на дынных узла. |
||
112 | |||
1374 | IgorA | 113 |
|
114 |
|
||
115 | |||
116 |
|
||
117 |
|
||
118 | |||
119 |
|
||
120 |
|
||
121 | |||
122 |
|
||
123 |
|
||
124 | |||
125 |
|
||
126 |
|
||
127 | то ничего не делает. Автоматически перерисовывает окно если состояние узла изменилось. |
||
128 | |||
129 |
|
||
130 |
|
||
131 | |||
132 |
|
||
133 |
|
||
134 | |||
135 |
|
||
136 |
|
||
1634 | IgorA | 137 | push dword tree1 |
138 | call dword[tl_node_move_up] ;переместить узел |
||
1374 | IgorA | 139 |
|
140 | |||
141 |
|
||
142 |
|
||
1634 | IgorA | 143 | push dword tree1 |
144 | call dword[tl_node_move_down] ;переместить узел |
||
1374 | IgorA | 145 |
|
146 | |||
1634 | IgorA | 147 |
|
148 |
|
||
149 | push dword tree1 |
||
150 | push dword 0 |
||
151 | call dword[tl_node_poi_get_info] |
||
152 | pop esi |
||
153 |
|
||
154 | 0 - позиция узла, с которого берется указатель; |
||
155 | esi - указатель на структуру описывающую узел. |
||
1374 | IgorA | 156 | |
1634 | IgorA | 157 |
|
158 |
|
||
159 | push tree1 |
||
160 | push esi |
||
161 | call dword[tl_node_poi_get_next_info] |
||
162 | pop esi ;переходим к следущему узлу |
||
163 |
|
||
164 | esi - до вызова функции указатель на структуру описывающую узел, после вызова указатель на структуру описывающую следущий узел в цепи. |
||
1374 | IgorA | 165 | |
1634 | IgorA | 166 |
|
167 |
|
||
168 | push dword tree1 |
||
169 | push dword esi |
||
170 | call dword[tl_node_poi_get_data] |
||
171 | pop eax ;получаем данные узла |
||
172 |
|
||
173 | esi - указатель на структуру описывающую узел; |
||
174 | eax - указатель на данные узла, описааного в esi. |
||
175 |
|
||
176 | |||
1374 | IgorA | 177 |
|
178 |
|
||
1634 | IgorA | 179 | MEM_SIZE equ 5000 |
180 | node_data rb MEM_SIZE |
||
1374 | IgorA | 181 | ......... |
1634 | IgorA | 182 | push dword tree1 |
183 | push dword 0 |
||
184 | push dword node_data |
||
185 | push dword MEM_SIZE |
||
186 | call dword[tl_save_mem] |
||
187 | pop eax |
||
1374 | IgorA | 188 |
|
189 | 0 - опция сохранения в начало блока памяти (если = 1, то добавляет элемент после других сохраненных ранее); |
||
190 | node_data - указатель на блок памяти; |
||
191 | MEM_SIZE - размер блока памяти для сохранения. |
||
192 | В регистр eax пишется значение 0 или записываются коды ошибок сохранения. |
||
193 | |||
194 |
|
||
195 |
|
||
1634 | IgorA | 196 | MEM_SIZE equ 5000 |
197 | node_data rb MEM_SIZE |
||
1374 | IgorA | 198 | ......... |
1634 | IgorA | 199 | push dword tree1 |
200 | push dword 0 |
||
201 | push dword node_data |
||
202 | push dword MEM_SIZE |
||
203 | call dword[tl_load_mem] |
||
204 | pop eax |
||
1374 | IgorA | 205 |
|
206 | 0 - индекс считываемого элемента; |
||
207 | node_data - указатель на блок памяти; |
||
208 | MEM_SIZE - размер блока памяти для сохранения. |
||
209 | В регистр eax пишется значение 0 или записываются коды ошибок считывания. |
||
210 | |||
211 |
|
||
212 |
|
||
213 | Эту функцию можно использовать перед сохранением на диск, для получения точного |
||
214 | размера сохраняемых данных. |
||
215 | |||
216 |
|
||
217 |
|
||
218 | |||
219 |
|
||
220 | struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ |
||
1634 | IgorA | 221 | col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ |
222 | info_capt_len,el_focus, p_scrol,on_press |
||
223 | { |
||
1374 | IgorA | 224 | .data_info dd 0 |
225 | .info_size dw info_size |
||
226 | .info_max_count dd info_max_count |
||
227 | .style dd style |
||
228 | .data_nodes dd 0 |
||
229 | .data_img dd 0 |
||
230 | .img_cx dw img_cx |
||
231 | .img_cy dw img_cy |
||
232 | .data_img_sys dd 0 |
||
233 | .ch_tim dd 0 |
||
234 | .ls_tim dd 0 |
||
235 | .tim_undo dd 0 |
||
236 | .cur_pos dd 0 |
||
237 | .col_bkg dd col_bkg |
||
238 | .col_zag dd col_zag |
||
239 | .col_txt dd col_txt |
||
240 | .box_left dd box_l |
||
241 | .box_top dd box_t |
||
242 | .box_width dd box_w |
||
243 | .box_height dd box_h |
||
244 | .capt_cy dw capt_cy |
||
245 | .info_capt_offs dw info_capt_offs |
||
246 | .info_capt_len dw info_capt_len |
||
247 | .el_focus dd el_focus |
||
248 | .p_scrol dd p_scrol |
||
249 | rb 4 |
||
250 | .on_activate dd 0 |
||
251 | .on_press dd on_press |
||
252 | } |
||
253 |
|
||
254 |
|
||
255 |
|
||
256 |
|
||
1634 | IgorA | 257 |
|
258 |
|
||
259 |
|
||
260 |
|
||
261 |
|
||
262 |
|
||
263 |
|
||
1374 | IgorA | 264 |
|
265 |
|
||
266 |
|
||
1634 | IgorA | 267 |
|
1374 | IgorA | 268 | |
269 | |||
270 |
|
||
271 | |||
272 |
|
||
273 | tree1 tree_list 24,500, tl_draw_par_line+tl_list_box_mode, 16,16,\ |
||
1634 | IgorA | 274 | 0x8080ff,0x0000ff,0xffffff, 10,35,200-16,285, 14,4,0,\ |
275 | el_focus, wScr,fun_on_enter |
||
1374 | IgorA | 276 | |
277 |
|
||
278 |
|
||
279 |
|
||
280 |
|
||
281 |
|
||
282 |
|
||
283 |
|
||
284 | |||
285 | |||
1634 | IgorA | 286 |
|
1374 | IgorA | 287 | |
288 |