掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
XPManでListViewの項目が表示されなくなる (ID:27552)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Syakeさん、こんにちは。 ちょっと手抜きですがテストしてみました。 { ListView OwnerData := True; OwnerDraw := False}の設定です。 OSはWindowXP(SP2)です。 推測ですが、おそらくTListViewのOnDataHintがミソなのではないかと。 (1) BDS2006を起動、Win32開発環境にする (2) [ファイル][プロジェクトを開く...]で以下のプロジェクトを開く http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_ListView.htm#03 (3) [ツールパレット]の[Win32]から[TXPManifest]を選択しフォームに配置 (4) [F9]でコンパイル実行 (5) ボタンをクリックして適当なフォルダを選択して表示。 アイコンと共に項目名(ファイル名等)が表示されました。 もちろん、各列のタイトルも表示されています。 次に、 (6) ViewStyleをVsIconに (7) FormのOnCreatのイメージリスト関係のコードを以下の様に修正 //システムのイメージリストのハンドルを取得 ImgListHandle := SHGetFileInfo('C:\', 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_ICON or SHGFI_LARGEICON or //ここをLARGEICONに変更 SHGFI_OPENICON or SHGFI_SYSICONINDEX); ListView_SetImageList(ListView1.Handle,ImgListHandle,LVSIL_NORMAL); //LVSIL_SMALLをLVSI_NORMALに変更 (9) [F9]でコンパイル実行 アイコンとそのファイル名等が表示されました。 EXE終了後、 OwnerDrawをTrueにして実行すると、何も表示されません。 OwnerDrawがTrueで該当するコードがないので当然ですが。 また、ViewStyleをVsReportに戻し、FormのOnCreateの部分も元に戻し、 OwnerDrawをTrueにして実行すると アイコンとサイズ、更新日時が非表示となります。 参考になるでしょうか。 OnCustomDrawItemとOnDataの同時使用は避けた方がいいのではないかと思われ ます。どちらもItemの描画を行うからです(一方は全て、一方は表示範囲のみ)。 Syakeさんとの違いはOnDataHintイベントを使用していることです。 本来は新規プロジェクトでテストすべきでしょうが手抜きということで。 なお、メモリマネージャーは以下のサイトのをものを使用しました。 http://sourceforge.net/projects/fastmm/
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.