|
|
||||
Tips > |
|||||
ListView の項目にアクセスできるか確認する |
更新 : 2009/12/17 |
||||
|
|
||
解説: ListView コンポーネントを使って、データを一覧表示していると、任意のアイテム名を取得したい状況がたびたび訪れます。必要なアイテムということで直接アクセスしたくなりますが、存在しないアイテムにアクセスするとエラーが出ます。 どのように回避すればよいのでしょう? 使用例: 例では、ListView コンポーネントの任意項目にアクセスしてアイテムを取得しています。 コンポーネントは、 ListView と Button を適当に配置するだけです。 例では、2 行目のアイテムを取得("b" が返ってきます)していますが、アイテムがない場合でもエラーはでません。 アイテムを取得しますので、 [カラムの設定] や [項目の設定] でアイテムを用意しておいてください。 今回は [カラムの設定] で name, address, memo を追加。[項目の設定] で、アイテム a, b を作り各々サブアイテムを、a1, b1, b2 としています。ViewStyle は vsRepot に設定。 サブアイテムも、同じように存在を調べてからアクセスすれば、取得できます。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // 調べたいインデックス番号 int num = 1; //取得したい Items があるか調べる if (ListView1->Items->Count > num) // 存在しない Items にアクセスするとエラーになる ShowMessage(ListView1->Items->Item[num]->Caption); else ShowMessage("アクセスできません。"); } //------------------------------------------------------------------- |