はじめまして、ListBoxに「aaa,bbb,ccc,ddd,eee」の5つのItemsが格納されている場合に、例えば「ccc」をDblClickすると「bbb」がLabel1.Captionに表示されてしまい、どのItemsをDblClickしても「bbb」が表示されます。
何分、プログラミングを始めてまだ2週間で、Help等を参照しているのですが、どこでミスしているのか全く分かりません。
どなたか、ご指導下さい。
下記は、私が書いてみたコーディングです。
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
i:Integer;
begin
for i := ListBox1.Items.Count-1 downto 0 do
if i > 0 then
Label1.Caption:=ListBox1.Items.Strings[i];
end;
end.
ソースを見る限り、Items[1]をラベルに入れているようですが、実際にはどういう動作を期待していましたか?
クリックしたitemをLabelに表示するだけですか?
Label1.Caption:=ListBox1.Items[ListBox1.itemindex];
意味が違いますか?
にしのさん、ん〜さんお返事ありがとうございます。やはり初心者の私には自分がしたいことを説明するのも難しいです(^^;改めて説明させていただきますと、ListBoxに下記の様にItemsが格納されている場合に、dddをDblClickするとLabel1.Captionに ddd と表示させたいのです。
aaa
bbb
ccc
ddd ←このItemをDblClick
eee
よろしくご指導下さい。
すみません。
どうやら、ごちゃごちゃと余計なことをしていたようで、ん〜さんご指摘の方法で解決いたしました。お騒がせ致しましたm(_ _)m
dddのときはdddで、aaaのときやbbbのときは何が入るのでしょうか。
予想では、aaaのときにはaaaで、bbbのときはbbb, cccのときはccc,eeeのときはeeeとなりそうですが。
そうすると、ん〜さんの書いているとおりですね。
TListBoxクラスのItemIndexプロパティに、選択した位置が入ります。
選択されていない場合は-1です。詳しくはヘルプで確認してください。
ツイート | ![]() |