掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TListBox の インデックスを知る方法について (ID:20962)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
基本的に以下のようなプログラムです。 リストボックスに[1111][2222]の2つの項目が入っているとします。 プログラムを起動して、2222を選択したとします。 このとき、ItemIndex=1 です。 次に追加ボタンを押します。 「3333」という項目が追加され、追加した項目が選択されるように ListBox1.ItemIndex := ListBox1.Count - 1; としています。 以下のプログラムではこの後、「3333」をクリックすると、 「アイテム変更処理」が行われません。 BackItemが1のままで、ItemIndexは2になっているからです。 目的は クリック時に「アイテム変更処理」が行われるようにしたいのです。 ただ、BackItem をプログラムのいたるところで設定するといった 方法はとりたくないという条件をつけてわけですが 私の説明はまだ、理解するには不十分なのでしょうか? unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure ListBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; BackItem: Integer; implementation {$R *.dfm} // リストボックスのクリック procedure TForm1.ListBox1Click(Sender: TObject); begin if BackItem = ListBox1.ItemIndex then begin //アイテム変更処理 end; BackItem := ListBox1.ItemIndex; end; // 挿入ボタンのクリック procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Add('3333'); ListBox1.ItemIndex := ListBox1.Count - 1; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.