仮想リストボックスの一部更新

解決


たかみちえ  URL  2003-12-27 16:07:03  No: 6429

リストボックスで、文字列の他に持っているデータの管理が煩雑になってきたので、仮想リストボックスを使おうと思っています。
  この仮想リストボックス、
全体を更新するには、Countプロパティを自分で設定してあげればいいそうですが、
その一部だけ(5番目の項目だけ とか)を更新するにはどうすればいいのでしょうか?
それとも、そのような頻繁に更新されるようなデータの管理には、仮想リストボックスは向かないんでしょうか?

  どうぞよろしくお願いいたします。


HOta  2003-12-27 16:50:26  No: 6430

TStringListを使うとすると、
StringList[4] := '変更する文字列';
で5番目を変更します。


たかみちえ  URL  2003-12-28 22:15:51  No: 6431

あのぅ、文字列リストではなく、"仮想リストボックス"です。
TListBoxの、StyleをlbVirtualにしたものです。
説明が悪かったでしょうか?


HOta  2003-12-28 23:27:27  No: 6432

TListBoxならItemsがTStrings型ですので、同様に変更できます。


たかみちえ  URL  2003-12-28 23:59:19  No: 6433

それはlbStandardもしくはlbOwnerDrawFixed、lbOwnerDrawの時のはなしですよね?
  失礼を承知で言いますが、ちゃんと質問を読んで回答してくださっているのでしょうか?
初心者相手だと思って、ぞんざいな回答をされたのでは困ります。
それほどのことをせずにも何とかなりそうなことがわかったので、いいです。

  この掲示板は、いつも回答している側の人が、質問してはいけないなんてことはないですよね?
わたしが質問側に回ると、他の人より初心者扱いされているような気がしますが。なぜでしょうか?


HOta  2003-12-29 01:47:04  No: 6434

別に初心者扱いしているつもりも何もありません。知っている範囲のことを書いているつもりです。それが初心者扱いとおっしゃるなら、あなたのスキルより答える人のスキルが低いのでしょう。
上記のTListBoxの件ですが、TItemsに設定したデーターの中身を変えると変更できるようです。


Halbow  2003-12-29 03:12:20  No: 6435

こんばんは、Halbow です。

わたしは Delphi ver5 なので TListBox の Style に lbVirtual を設定する
ことができません。それで最初の質問を読んだとき google で調べました。
「仮想リストボックス Delphi」をキーワードにしたとき、以下のサンプルを
見つけました。

"仮想リストボックスの使用例(表示高速化)"
http://forum.nifty.com/fdelphi/samples/01389.html

これを見る限り「仮想リストボックス」というのは、外部にデータを持ち、
描画要求に応じて Data 部分に文字列を設定するものであることが分かりました。
で、HOta さんの回答をみて、非常に当を得た回答であると思いました。

> わたしが質問側に回ると、他の人より初心者扱いされているような気がしますが。なぜでしょうか?

それは誤解です。第三者からみて HOta さんの最初の回答は、たかみさんの
スキルを考慮すると十分妥当だと思いますよ。わたしは、たかみさんの HP にも
以前から何度か伺っておりますし、ここでのたかみさんの回答も何度も読ませて
いただいております。決して初心者扱いをされているとは思いません。

> TStringListを使うとすると、

この部分は意味深ですし、初心者には意味が分からないでしょう。でもたかみさん
なら、理解してくれそうです。と、わたしは思いました。

> 初心者相手だと思って、ぞんざいな回答をされたのでは困ります。

回答する方にもいろいろなスタイルがあります。HOta さんの今回の回答は
特別に他のところでなさっている回答と比べてぞんざいであるとは思いません。
内容も的確であると思いますよ。

たかみさん、
どうか、また、ここに戻ってこられて、回答・質問を続けてくださいね。


  2003-12-29 04:17:46  No: 6436

特定のItemを再描画したいという事でしょうか?

lbVirtualOwnerDrawで、
ListBox1.OnDrawItem(〜〜省略〜〜);
で出来ます。

適当な回答が得られない場合、
質問内容に不備がある場合が大半だと思います。
この場合、項目が入れ替え出来ないのか、描画出来ないで困っているのか
どちらか分からないと思います。

私もHOtaさんの回答は、ぞんざいな回答では無いと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加