ListViewの編集について


しんちゃん  2016-10-18 18:05:06  No: 48355

おはようございます。
以下のように生成したListViewを
例えば3行目の2列目のSubItemを編集するには
どのようにすればよいのでしょうか。

  while not Eof do
  begin
    item := ListView1.Items.Add;
    item.Caption :=DataSource1.DataSet.Fields[1].AsString;
    item.SubItems.Add(DataSource1.DataSet.Fields[0].AsString);
    item.SubItems.Add(DataSource1.DataSet.Fields[2].AsString);
    Next;
  end;

【環境】
Windows 8.1 Pro 64bit
Delphi XE5 Enterprise
Oracle 11g


KON  2016-10-19 05:01:10  No: 48356

こんばんは!KONです。

> 例えば3行目の2列目のSubItemを編集するには 
> どのようにすればよいのでしょうか。

TListViewの3行目の2列目のSubItemを書き換えるのなら、
  ListView1.Items[ 2 ].SubItems[ 0 ] := 'HogeHoge';

ですね。

行は、Itemsプロパティの括弧内の数値を0発進で記述。

  ListView1.Items[ 0 ]     // ← これは1行目
  ListView1.Items[ 1 ]     // ← これは2行目
  ListView1.Items[ 2 ]     // ← これは3行目

列はちょっと特殊で、最初の列だけCaptionプロパティになり、
2列目からはSubItemsプロパティになります。

  ListView1.Items[ 行 ].Caption           := 'HogeHoge1';       // ← これは1列目
  ListView1.Items[ 行 ].SubItems[ 0 ]  := 'HogeHoge2';     // ← これは2列目
  ListView1.Items[ 行 ].SubItems[ 1 ]  := 'HogeHoge3';     // ← これは3列目

Columnsプロパティに設定されている範囲を超えてアクセスしようとすると、
例外エラーが発生しますのでご注意下さい。

データベースの話ではなくて、TListViewの質問と思いましたので、
質問の内容をハズしていたらすみません。


Nov  2016-10-19 08:44:43  No: 48357

フヨの2列目以降を「編集」するユノは標準では無いと思います。
オンスクリーンエディタを自力で実装するよりは、グリッドを使った
ほうが楽な気がします。
スススススススススススススススススススススススススススススススススススススススス
ニコ しんちゃん
トコ イーアカッアーッアケィ水ゥ ークコイエコーク シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。 「」  ン

ヒマホさん、ホさん、ご助言ありがとうございます。
挑戦してみます。
スススススススススススススススススススススススススススススススススススススススス
ニコ しんちゃん
トコ イーアカッアーッイウィ日ゥ ーケコエキコオイ シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。」 「  ン
モコ 

フヨではできなかったので
モヌでつくりました。


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

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






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