HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0916
けん購入したものを2つに仕分けたい3解決


けん

リンク

2013/9/16(Mon) 22:14:44|NO.57188

度々の投稿です。県名を2種類(1.北海道〜滋賀県と2.京都府〜沖縄県)
に分けたとして、購入したときに、2つの combox に仕分けするようにしたいと思っています。

どうか、教えてください。
よろしくお願いいたします。(下記に作成したデータを載せます)

#module

#defcfunc fun_GetKenName int ken_id
if kens=0 {//fun_GetKenNameの度に県名入れるのは無駄なので
sdim kens;
kens(0) = "北海道","青森県","岩手県","宮城県","秋田県"
kens(5) = "山形県","福島県","茨城県","栃木県","群馬県"
kens(10) = "埼玉県","千葉県","東京都","神奈川県","新潟県"
kens(15) = "富山県","石川県","福井県","山梨県","長野県"
kens(20) = "岐阜県","静岡県","愛知県","三重県","滋賀県"
kens(25) = "","","","",""
kens(30) = "京都府","大阪府","兵庫県","奈良県","和歌山県"
kens(35) = "鳥取県","島根県","岡山県","広島県","山口県"
kens(40) = "徳島県","香川県","愛媛県","高知県","福岡県"
kens(45) = "佐賀県","長崎県","熊本県","大分県","宮崎県"
kens(50) = "鹿児島県","沖縄県"
}
ken_name = kens(ken_id)
return ken_name
#global

onerror *jj ;エラーが出た場合飛ぶ

iddat=0,5,7,1,10,6,9,20
kenString=""

repeat length(iddat)
id=iddat(cnt)
kenString+fun_GetKenName(id) + "\n"
ken_id(cnt)=id //県IDを県名順に保存(listboxの順番と県IDをセットにする)
loop

ken_index = 0
listbox ken_index,100,kenString : lb_ID = stat
hListbox = objinfo(stat, 2)

cb_flag = 0 ; comboxが表示中かどうかのフラグ
button gosub "購入", *check
stop

*check
notesel kenString
noteget getlist, ken_index

; アイテムの頭に印があれば処理を中断
cstr = strmid(getlist, 0, 2)
if cstr = "※" : dialog "購入済です" : return

notesel combdata
noteadd Getlist

; comboxが非表示なら表示、表示中なら内容を書き換え
if cb_flag = 0 {
b = 0
combox b,100,combdata : cb_ID = stat
cb_flag = 1
} else {
objprm cb_ID, combdata
objprm cb_ID, 0
}

; 購入したアイテムに印をつける
notesel kenString
noteadd "購入済" + getlist, ken_index, 1
objprm lb_ID, kenString
objprm lb_ID, ken_index

return

*jj



この記事に返信する


暇人

リンク

2013/9/16(Mon) 23:53:55|NO.57191

ken_idに県名IDが入ってるんだから
ken_id(ken_index)が京都府ID以上か未満で別ければ良いだけじゃ?



fortunehill

リンク

2013/9/17(Tue) 02:16:49|NO.57193

/*ご参考(改)*/

#module #defcfunc fun_GetKenName int ken_id,local ss if (vartype(kens) != 2) { kens = {"北海道\n青森県\n岩手県\n宮城県\n秋田県\n山形県\n福島県\n茨城県\n栃木県\n群馬県 埼玉県\n千葉県\n東京都\n神奈川県\n潟県\n富山県\n石川県\n福井県\n山梨県\n長野県 岐阜県\n静岡県\n愛知県\n三重県\n滋賀県\n京都府\n大阪府\n兵庫県\n奈良県\n和歌山県 鳥取県\n島根県\n岡山県\n広島県\n山口県\n徳島県\n香川県\n愛媛県\n高知県\n福岡県 佐賀県\n長崎県\n熊本県\n大分県\n宮崎県\n鹿児島県\n沖縄県"}} if (ken_id >= 0) {split kens,"\n",ss :ss = ss(ken_id)} else {ss = kens} return ss #global :ss = fun_GetKenName(-1) objsize 100 listbox ken_index,100,ss :lb_ID = stat :hListbox = objinfo(stat,2) button "購入", *check :position = ginfo_cx,ginfo_cy ; :combdata = "","" ; :cb_ID = 0,0 ; :cb_index = 0,0 ; :cb_flag = 0,0 ; :ken_index = 25 ;LB_SETCURSEL :ii = 0 ; sendmsg hListbox,$186,25 ; stop *check if (flag(ken_index/47) and (1<<(ken_index&47))) {goto *@f} flag(ken_index/47) |= 1<<(ken_index&47) if (ken_index >= 25) {ii = 1} else {ii = 0} ; if (cb_flag(ii) == 0) {pos position+(ii*100),position(1) ; combox cb_index(ii),100,combdata(ii) :cb_ID(ii) = stat :cb_flag(ii) = 1} notesel combdata(ii) :noteadd fun_GetKenName(ken_index) sendmsg hListbox,$182,ken_index :ss = "※"+fun_GetKenName(ken_index) ;LB_DELETESTRING sendmsg hListbox,$181,ken_index,varptr(ss) ;LB_INSERTSTRING sendmsg hListbox,$186,ken_index ; objprm cb_ID(ii),combdata(ii) :objprm cb_ID(ii), 0 await sendmsg objinfo(cb_ID(ii),2),$14F,1 ;CB_SHOWDROPDOWN *@



けん

リンク

2013/9/29(Sun) 17:00:38|NO.57460

返事遅くなりましたができました。
暇人さんありがとうございます。
fortunehillさん まだそこまで纏める技量がないので参考にします。

後、次にできなかったことがあるので改めて質問します。

以上



ONION software Copyright 1997-2023(c) All rights reserved.