PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
14759 | 01/03/09 22:41:58 | RE(5):PB7.0: リストビューで選択されている項目を取得したいです。 By コマドリ |
14749 | 01/03/09 00:59:57 | RE(4):PB7.0: リストビューで選択されている項目を取得したいです。 By Taka |
14742 | 01/03/08 18:16:43 | RE(3):PB7.0: リストビューで選択されている項目を取得したいです。 By コマドリ |
14739 | 01/03/08 17:04:14 | RE(2):PB7.0: リストビューで選択されている項目を取得したいです。 By Taka |
14737 | 01/03/08 16:42:32 | RE(1):PB7.0: リストビューで選択されている項目を取得したいです。 By Taka |
14736 | 01/03/08 15:02:43 | PB7.0: リストビューで選択されている項目を取得したいです。 By コマドリ |
カテゴリ:スクリプトの記述
日付:2001年03月09日 00:59 発信者:Taka
題名:RE(4):PB7.0: リストビューで選択されている項目を取得したいです。
コマドリさん、おはようございます。
>ですが、項目が一つしかなく、その項目を選択した場合によく分からないことが起こります。
>通常上記のスクリプトでidx = 1とすると次の項目から検索に行くはずなので戻り値が-1になると思ったのですが、
>1が返ってきてしまいます。
あぁ、そういう事ですね。
Find関数の第一パラメータに 1 を指定しているのに、戻り値が 1 になっていると。
だから永久ループに入ってしまう訳ですね。
PB7.0.3で試してみたら、こちらでも再現できました。
PB6.5ではこのような状況にならない事から、PB7のバグと思われます。
スクリプトで解決したいのでしたら、
idx = FindItem( idx, DirectionDown!, False, True, False, False )
の部分を
idx = FindItem( idx, DirectionAll!, False, True, False, False )
にしてみてください。
こちらでは、この修正で回避できました。
あるいは、index = 1 to lv_1.TotalItems() をループで回しながら、GetItemでListViewItem構造体を取得し、
Selected属性をチェックするという方法も考えられます。
Find関数に比べるとパフォーマンスが落ちると思いますが、ロジック的には確実かもしれません。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.