ListBoxで、特定の行を表示しないようにするには?

解決


fyuji  2003-06-30 03:02:49  No: 3931

また、質問があります。
ホント、初心者的な質問かもしれませんが、お許しください m(_ _)m

ListBoxで、特定の行を、消すのではなく、表示しなくする方法ってのはありますか?
Deleteを使うと、他の行のインデックスが変わってしまうので、他の行のインデックスを保持したまま、リストから消したいのですが・・・

一応、ListBoxのプロパティやメソッドは確認したつもりですが、それらしいものは見つかりませんでした・・・
Visibleとかがあれば簡単だったのですが・・・

いい方法はないでしょうか?


Halbow  2003-06-30 03:31:38  No: 3932

Halbow です。

> ListBoxで、特定の行を、消すのではなく、表示しなくする方法ってのはありますか?

ありません。

> Deleteを使うと、他の行のインデックスが変わってしまうので、他の行の
> インデックスを保持したまま、リストから消したいのですが・・・

Delete でもインデックスを保持するならいいんですか?
それなら、項目に '' を代入するだけです。

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Items[7] := '';
end;


XOOX  2003-06-30 08:03:00  No: 3933

>一応、ListBoxのプロパティやメソッドは確認したつもりですが、それらしいものは見つかりませんでした・・・
Visibleとかがあれば簡単だったのですが・・・

現状のままやるのには別にデータリストを用意して
Halbowさんのかかれたようにするのも一案ですが
コンポーネント作るというのも一案では?

本件はさほど難易度も高くないしいい例だと思います。
コンポーネントはインストールしないでTlistBoxから派生させれば
プロジェクトのフォルダーにソースがあれば
設計時にVisible設定は出来なくても動的変更は可能なはず


fyuji  2003-06-30 11:24:17  No: 3934

なるほど・・・
''を代入するだけで出来たんですね。
またまた、私の知識不足でした。

確かに、これくらいなら、コンポーネントを作るのも、さほど難しくなさそうですね。
勉強のために、作ってみます。

Halbowさん、XOOXさん、どうもありがとうございました。


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

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






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