リストボックスで、文字列の他に持っているデータの管理が煩雑になってきたので、仮想リストボックスを使おうと思っています。
この仮想リストボックス、
全体を更新するには、Countプロパティを自分で設定してあげればいいそうですが、
その一部だけ(5番目の項目だけ とか)を更新するにはどうすればいいのでしょうか?
それとも、そのような頻繁に更新されるようなデータの管理には、仮想リストボックスは向かないんでしょうか?
どうぞよろしくお願いいたします。
TStringListを使うとすると、
StringList[4] := '変更する文字列';
で5番目を変更します。
あのぅ、文字列リストではなく、"仮想リストボックス"です。
TListBoxの、StyleをlbVirtualにしたものです。
説明が悪かったでしょうか?
TListBoxならItemsがTStrings型ですので、同様に変更できます。
それはlbStandardもしくはlbOwnerDrawFixed、lbOwnerDrawの時のはなしですよね?
失礼を承知で言いますが、ちゃんと質問を読んで回答してくださっているのでしょうか?
初心者相手だと思って、ぞんざいな回答をされたのでは困ります。
それほどのことをせずにも何とかなりそうなことがわかったので、いいです。
この掲示板は、いつも回答している側の人が、質問してはいけないなんてことはないですよね?
わたしが質問側に回ると、他の人より初心者扱いされているような気がしますが。なぜでしょうか?
別に初心者扱いしているつもりも何もありません。知っている範囲のことを書いているつもりです。それが初心者扱いとおっしゃるなら、あなたのスキルより答える人のスキルが低いのでしょう。
上記のTListBoxの件ですが、TItemsに設定したデーターの中身を変えると変更できるようです。
こんばんは、Halbow です。
わたしは Delphi ver5 なので TListBox の Style に lbVirtual を設定する
ことができません。それで最初の質問を読んだとき google で調べました。
「仮想リストボックス Delphi」をキーワードにしたとき、以下のサンプルを
見つけました。
"仮想リストボックスの使用例(表示高速化)"
http://forum.nifty.com/fdelphi/samples/01389.html
これを見る限り「仮想リストボックス」というのは、外部にデータを持ち、
描画要求に応じて Data 部分に文字列を設定するものであることが分かりました。
で、HOta さんの回答をみて、非常に当を得た回答であると思いました。
> わたしが質問側に回ると、他の人より初心者扱いされているような気がしますが。なぜでしょうか?
それは誤解です。第三者からみて HOta さんの最初の回答は、たかみさんの
スキルを考慮すると十分妥当だと思いますよ。わたしは、たかみさんの HP にも
以前から何度か伺っておりますし、ここでのたかみさんの回答も何度も読ませて
いただいております。決して初心者扱いをされているとは思いません。
> TStringListを使うとすると、
この部分は意味深ですし、初心者には意味が分からないでしょう。でもたかみさん
なら、理解してくれそうです。と、わたしは思いました。
> 初心者相手だと思って、ぞんざいな回答をされたのでは困ります。
回答する方にもいろいろなスタイルがあります。HOta さんの今回の回答は
特別に他のところでなさっている回答と比べてぞんざいであるとは思いません。
内容も的確であると思いますよ。
たかみさん、
どうか、また、ここに戻ってこられて、回答・質問を続けてくださいね。
特定のItemを再描画したいという事でしょうか?
lbVirtualOwnerDrawで、
ListBox1.OnDrawItem(〜〜省略〜〜);
で出来ます。
適当な回答が得られない場合、
質問内容に不備がある場合が大半だと思います。
この場合、項目が入れ替え出来ないのか、描画出来ないで困っているのか
どちらか分からないと思います。
私もHOtaさんの回答は、ぞんざいな回答では無いと思います。
ツイート | ![]() |