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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0518
GoHSP Listviewについて3解決


Go

リンク

2012/5/18(Fri) 13:43:12|NO.46687

HSPのリストビューで

一列目の(商品コード)のアイテムを追加したら、追加したアイテムが一番上にいくんですが。

二列目の(商品名)のアイテムを1行目と同じように追加しても、一番上に行きません。

どうやったら2列目の(商品名)を追加したら1行目と同じように一番上に行くんでしょうか?

参考にさせてもらったサイト : http://halapeco.blog37.fc2.com/blog-entry-90.html


/* ソースコード */

winobj "SysListView32", "", 0x00000200, 0x50000001, 300, 100
hList = objinfo(stat, 2)
sendmsg hList, $1036, , $20

szText = "商品コード"
LVCOLUMN = 0x000F, 0, 100, varptr(szText), 0, 0
sendmsg hList, 0x101B, 0, varptr(LVCOLUMN)

szText = "商品名"
LVCOLUMN = 0x000F, 0, 100, varptr(szText), 0, 1
sendmsg hList, 0x101B, 1, varptr(LVCOLUMN)

/* 1行目(商品コード)のアイテムを一番上に追加 */

pszText = "A001"
LVITEM = 0x0001, 0, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)

pszText = "A002"
LVITEM = 0x0001, 0, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)

pszText = "A003"
LVITEM = 0x0001, 0, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)

pszText = "A004"
LVITEM = 0x0001, 0, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)

pszText = "A005"
LVITEM = 0x0001, 0, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)

pszText = "A006"
LVITEM = 0x0001, 0, 0, 0, 0, varptr(pszText)
sendmsg hList, 0x1007, 0, varptr(LVITEM)



この記事に返信する


(´ω`)

リンク

2012/5/18(Fri) 15:12:08|NO.46688

リストビューは、アイテムとサブアイテムって構造になってます。
一番先頭の列がアイテム。それより右の列は、アイテムに関連したサブアイテムだ、という
考え方です。

で、例示されているソースでは、0行目にどんどんアイテムを入れていってますね。
すでにアイテムがある行へアイテムを挿入すると、既存のアイテム群は下へシフトされます。
ところが、サブアイテムはあくまでアイテムにくっついてるモノなので、0行目の1列目以降
にいくらサブアイテムを入れても、書き換わるだけなわけです。

以下のソースを実行すれば、リストビューの仕組みがだいぶ理解しやすいかと。(´ω`)


#include "sysval.as" #include "gblconst.as" #include "winapi32.as" #include "exlistview.as" pos 30, 30 hLView = Createlstview(0, 0, 0, 300, 200) ; listview作成 LSVexset hLView, $0021 ; Listviewのスタイル設定 ; カラムをセット LSVcladd hLView, "商品コード", 0, 0, 100, 0, 0 LSVcladd hLView, "商品名", 1, 0, 100, 0, 0 ; 0行目にアイテムとサブアテムをセット LSVimadd hLView, "A001", 0, 0 LSVsubadd hLView, "B001", 0, 1 dialog "アイテム入ったよ" ; また0行目にアイテムとサブアテムをセット ; (既存アイテム&サブアイテムはシフトされる) LSVimadd hLView, "A002", 0, 0 LSVsubadd hLView, "B002", 0, 1 dialog "シフトされてるね?" ; 再度0行目にアイテムをセット ; (シフトされる) LSVimadd hLView, "A003", 0, 0 LSVimadd hLView, "A004", 0, 0 dialog "アイテムだけ2連続でセットしたよ" LSVsubadd hLView, "B003", 0, 1 LSVsubadd hLView, "B004", 0, 1 dialog "次にサブアイテムを2連続でセット……あれ?"



(´ω`)

リンク

2012/5/18(Fri) 16:01:25|NO.46689

あっ(u゚ω゚ )しまった。

追記です。上のソースは、HSPNEXTさんが公開されてるstdlibを使っています。

↓からstdlib110.lzhをダウンロードして、
http://hspnext.com/module/library.htm

解凍して出てきたフォルダ内のlibraryフォルダにある、上記インクルードファイルを
ソースと同じフォルダにコピーしてきてから実行してください。



Go

リンク

2012/5/18(Fri) 16:31:28|NO.46691

>>(´ω`)様
(´ω`)様のソースのおかげで、リストビューの仕組みがわかり、やりたいこともできました!!
★☆。.:*:・"゚★('-^v)Thanks(v^-')★。.:*:・"☆★



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