Delphi/C++Builder TListView 仮想モード時の Item.Dataプロパティ
TListView の速度を上げられる、仮想モード
という感じに利用する
この OnData イベントは、ListView のアイテムが描画されるたびに発生し、引数の Item: TListItem は毎回新規作成される
仮想モードと言う事で、ListViewが保持しているのは個数だけで OwnerDraw を行っている感じ
通常のモードと大きく違うのが Item.Data := としてポインタ等を Data プロパティへ格納して、
仮想モードなので、実データは別にあるという事が前提なんだろうけど...
【追記】
OnEditing イベントも仮想モードでは引数の Itemが常に nil になってしまうようです
- ListView.OwnerData を True にし
- ListView.Items.Count := 10000; 等と先に個数だけ指定
- OnData イベント引数の Item: TListItem へ記述
という感じに利用する
この OnData イベントは、ListView のアイテムが描画されるたびに発生し、引数の Item: TListItem は毎回新規作成される
仮想モードと言う事で、ListViewが保持しているのは個数だけで OwnerDraw を行っている感じ
通常のモードと大きく違うのが Item.Data := としてポインタ等を Data プロパティへ格納して、
、仮想モードではListView1Deletionイベントなどで解放を行っていると
ListView1Deletion が発生しないため、メモリリークの恐れが出てくる事
仮想モードなので、実データは別にあるという事が前提なんだろうけど...
【追記】
OnEditing イベントも仮想モードでは引数の Itemが常に nil になってしまうようです
コメント