-PR-
解決済み

C++Builder 6 : TListView でエラー

  • すぐに回答を!
  • 質問No.295405
  • 閲覧数426
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 63% (23/36)

TListView コンポーネントを配置した、フレーム内で、
ListView1->Items->Clear();
とすると、
「リストのインデックスが範囲を超えています(10)」
という意味の解らないエラーが発生します。

そこで、

int c = ListView1->Items->Count;
for (int i=0; i<c; i++) {
  ListView1->Items->Delete(0);
}

と書き換えると、残り11件のところで削除するときに上記のエラーが発生します。

リストは、33件あります。ViewStyle は、vsReport です。
また、このエラーは、2度目は発生しません。
実行して、最初に Clear() すると発生します。

どうも解らないので、質問しました。
理由や、解決方法をご存じの方、教えて下さい。
よろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル4

ベストアンサー率 66% (2/3)

まず、リストの状態を調べてみるとよろしいかと思います。
要所(リストの状態が変化するとこ)に
#ifdef _DEBUG
AnsiString asViewCount = AnsiString( LisiView1->Items->Count );
OutputDebugString( asViewCount.c_str() );
#endif
デバッグして イベントログを見てみる吉。
情報が足らなければ、sprintfとか Format関数を使って+αが吉と思いますよ。あとはソースコードを追いましょ(^^;
お礼コメント
clavia

お礼率 63% (23/36)

ありがとうございました、解決しました。

いろいろ追っていくと、
別の ListView の OnDeletion でエラーが発生していました。

でもなぜ、Clear() で止まって、
実際にエラーが発生している、
OnDeletion 内で止まらないんでしょうかね?
投稿日時 - 2002-06-29 14:17:32
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ