喫茶XRAYトップページ

[スレッド全体
]

[1393] Re3:TListViewのOnDataHintとOnDataイベント返信 削除
2007/8/29 (水) 11:12:16 Syake
> → for i := StartIndex to EndIndex do
> 自動補完機能のせいにしとこ (^_^;)


俺はなにやっとんじゃ、XPMan無効でテストして感激してました。
XPMan有効にすると、サムネイルが下方にずれて表示されてしまいます。
最終的に表示される際のOnDataHintイベントでの
ARect := ListView.Items.Item[i].DisplayRect(drIcon);
自体が良くないのか、Top値が多めの数値が入ってきていました。

確認すると、ListView.Item.add()毎にOnDataHintが呼ばれているようで
この時にARect := ListView.Items.Item[i].DisplayRect(drIcon)まで
が何故か実行されるようです。
これで、狂っちゃうのかな?

それと、多くのサムネイルを読み込んだ際にスクロールバーが表示され
ない。
トホホ・・・再度見直しです。



[1394] Re4:TListViewのOnDataHintとOnDataイベント返信 削除
2007/8/29 (水) 12:08:21 Syake
どうも私が誤解していたようです。

OwnerDataはTrueでないといけないが、OwnerDrawはFalseでないといけ
ないのですね。
理解できていませんでした。<m(__)m>
今度こそ本当にOnDataHintでちらつきなく、正しく表示できました。

ついでにOwnerDrawがTrueだと以下のようになります。
参考にも何もなら無いですが・・・

(1)表示されるべきファイルの順番が逆になる。
 例えば[a.bmp,b.bmp,c.bmp,d.bmp]のファイルがフォルダーにあるとして
 XPManが無効の場合は [a > b >c >d]の順に表示しようとしますが
 XPManが有効だと[d > c > b > a]の順で表示しようとします。

(2)更に表示されるべきListViewの開始位置が異なる。
 XPManが無効であれば、表示されるべきListView内の左上を基準に
 順に表示される。(左上基準で、左から右へ、上から下へ)
 XPManが有効だと、表示されるべきListView内の基準がなんと左下
 になってしまう。
 (左下基準で、左から右へ、下から上へ)

(3)最終的にOnDataHintが発生後でも描画されない。
 XPManが有効であれば、描画内容は何故か一旦破棄される。
 フォームをScreen表示枠外に出して、再度戻すと描画内容は保持される。
 但し中途半端に枠外に出しても駄目で、タイトルバーのみ残して他全て
 Screenの下方部枠外へ移動後、元に戻すなど。
 面白いことに、他のアプリをかぶせた後に再表示させた場合は、再描画
 されない。
 しかも、サムネイルクリックすると消えてしまう。

大変失礼しました。




[1395] Re5:TListViewのOnDataHintとOnDataイベント返信 削除
2007/8/29 (水) 13:07:16 Mr.XRAY
▼ Syakeさん

> 今度こそ本当にOnDataHintでちらつきなく、正しく表示できました。

やったぜい (^_^)

> ついでにOwnerDrawがTrueだと以下のようになります。
> 参考にも何もなら無いですが・・・


参考になります。当然。
うまく動作した時だけでなく、このような内容も参考になりますね。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82