マイナーアップデートです
SHOWを2件変更
LISTBOXに表示する情報増加
モジュール
#module one_block_data many_data,data_title,del_flag,data_act_len #modinit int p_size data_title="" data_act_len=0 del_flag=0 sdim many_data,100,p_size return #modfunc local set_del_flag del_flag=-1 sdim data_title,1 sdim many_data,1.1 return #modfunc local set_title str p_str data_title=p_str return #modcfunc local get_title return data_title #modcfunc local get_data_length return length(many_data) #modcfunc local get_act_len return data_act_len #modfunc local set_one_data int p_index,str p_str if p_index >= length(many_data):dialog "p_index is too big",1:return many_data.p_index=p_str if p_index > data_act_len : data_act_len=p_index return #modfunc local check_len tmp_len = data_act_len repeat tmp_len if many_data(data_act_len-cnt)==""{ data_act_len-- }else{ break } loop return #modcfunc local get_one_data int p_index if p_index >= length(many_data):dialog "p_index is too big",1:return -1 return many_data.p_index #modfunc local str_dump logmes "\ntitle:"+data_title+" del_flag:"+del_flag repeat data_act_len logmes ""+cnt+":"+many_data.cnt loop return #modfunc local reset int p_size data_title="" del_flag=0 sdim many_data,100,p_size return #modfunc local resize int p_size,local loc_length,local loc_array loc_length=length(many_data) sdim loc_array,100,loc_length repeat loc_length loc_array.cnt=many_data.cnt loop if loc_length > p_size { sdim many_data,100,p_size repeat p_size many_data.cnt = loc_array.cnt loop }else{ sdim many_data,100,p_size repeat loc_length many_data.cnt = loc_array.cnt loop } return #global #module block_manage #deffunc local init sdim _4note,10000 notesel _4note num=0 return #deffunc local add_block newmod one_block_obj,one_block_data,8 num++ return num-1 #deffunc local many_dump repeat num str_dump@one_block_data one_block_obj@block_manage.cnt loop return #deffunc local more_correct_dump repeat notemax tmp="" noteget tmp,cnt str_dump@one_block_data one_block_obj@block_manage.int(tmp) loop return #global
EDIT
#include "module_one_block.hsp" init@block_manage show_screen=1 screen show_screen,400,480 show_s4mesbox="" font "",24 objmode mesbox show_s4mesbox,400,400,5 ID4show_mesbox=stat screen 0,580,580 s4listbox="-1" index4listbox=0 objsize 400,580 font "",24 objmode listbox index4listbox,100,s4listbox id4listbox=stat pos 400,0 objsize 180,25 button "ADD_A",*add_A button "ADD_B",*add_B button "ADD_C",*add_C button "ADD_D",*add_D button "SHOW_1",*l_SHOW_1 goto *LB_loop *LB_loop pre_index=index4listbox *LB_tmp await 50 if index4listbox==-1:goto *LB_tmp if pre_index!=index4listbox:goto *l_SHOW_X goto *LB_loop *l_SHOW_1 if s4listbox!=-1{ s4show="NO."+index4listbox index=0 s4show += "\n! "+get_title@one_block_data(one_block_obj@block_manage.index)+"\n" length4show = get_act_len@one_block_data(one_block_obj@block_manage.index) repeat length4show s4show += "\n"+cnt +":"+get_one_data@one_block_data(one_block_obj@block_manage.index,cnt) loop gsel 1 // dialog s4show,0 objprm ID4show_mesbox,s4show } goto *LB_loop *l_SHOW_X if s4listbox!=-1{ s4show="NO."+index4listbox index=index4listbox s4show += "\n! "+get_title@one_block_data(one_block_obj@block_manage.index)+"\n" length4show = get_act_len@one_block_data(one_block_obj@block_manage.index) repeat length4show s4show += "\n"+cnt +":"+get_one_data@one_block_data(one_block_obj@block_manage.index,cnt) loop gsel 1 // dialog s4show,0 objprm ID4show_mesbox,s4show } goto *LB_loop *add_A // 追加A gsel 0 add_block@block_manage index=stat set_title@one_block_data one_block_obj@block_manage.index,"case 1: def label" noteadd ""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index),-1,0 s4listbox=_4note@block_manage objprm id4listbox,_4note@block_manage tmp_data={"begin_var // case 1: def label sta_l { subr_do_eq_ldef4 1,\"a\",1,label_pc if is_jump_p==1:is_jump_p=0:goto global_label }"} sdim tmp_array,100,8 split tmp_data,"\n",tmp_array repeat length(tmp_array) set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt loop check_len@one_block_data one_block_obj@block_manage.index str_dump@one_block_data one_block_obj@block_manage.index if s4listbox==""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index)+"\n"{goto *l_SHOW_1} goto *LB_loop *add_B // 追加 gsel 0 add_block@block_manage index=stat set_title@one_block_data one_block_obj@block_manage.index,"case 2: cls 0 " noteadd ""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index),-1,0 s4listbox=_4note@block_manage objprm id4listbox,_4note@block_manage tmp_data={"begin_do // case 2: cls 0 sta_c { subr_do_eq_1 1,en_cls0 if is_jump_p==1:is_jump_p=0:goto global_label }"} sdim tmp_array,100,8 split tmp_data,"\n",tmp_array repeat length(tmp_array) set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt loop check_len@one_block_data one_block_obj@block_manage.index str_dump@one_block_data one_block_obj@block_manage.index if s4listbox==""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index)+"\n"{goto *l_SHOW_1} goto *LB_loop *add_C // 追加 gsel 0 add_block@block_manage index=stat set_title@one_block_data one_block_obj@block_manage.index,"case 3: objsize" noteadd ""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index),-1,0 s4listbox=_4note@block_manage objprm id4listbox,_4note@block_manage tmp_data={"begin_do // case 3: objsize sta_c { do_eq_three(1,en_objsize,120,24) }"} sdim tmp_array,100,8 split tmp_data,"\n",tmp_array repeat length(tmp_array) set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt loop check_len@one_block_data one_block_obj@block_manage.index str_dump@one_block_data one_block_obj@block_manage.index if s4listbox==""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index)+"\n"{goto *l_SHOW_1} goto *LB_loop *add_D // 追加 gsel 0 add_block@block_manage index=stat set_title@one_block_data one_block_obj@block_manage.index,"case 4:" noteadd ""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index),-1,0 s4listbox=_4note@block_manage objprm id4listbox,_4note@block_manage tmp_data={"begin_do // case 4: // read label sta_c { do_eq_three_lread(1,en_get_my_label,\"aa1\",11) } // button sta_c { switch my_pc_B eq_B 4:cp1=\"X足す1\":goto *sw_begin eq_B 5:bt_pc_1=my_label: goto *sw_begin eq_B 6:cr_com=en_button_A:cmd_fin swend }"} sdim tmp_array,100,8 split tmp_data,"\n",tmp_array tmp_num=stat if stat >= 8{ resize@one_block_data one_block_obj@block_manage.index,stat } repeat length(tmp_array) set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt loop check_len@one_block_data one_block_obj@block_manage.index str_dump@one_block_data one_block_obj@block_manage.index if s4listbox==""+str(index)+" "+get_title@one_block_data(one_block_obj@block_manage.index)+"\n"{goto *l_SHOW_1} goto *LB_loop