NO_663_EDIT


マイナーアップデートです
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