nie wiem czy to najlepsza metoda ale to moj pierwszy listbox :)
wrzuc na forme ListBox1 i Label1, do listboxa podepnij na zdarzeniu onClick procedure tej tresci
procedure TForm1.ListBox1Click(Sender: TObject);
begin
Label1.Caption:=ListBox1.Items[ListBox1.ItemIndex];
end;
oczywiscie nie musisz tego na label rzucac bo
ListBox1 .Items [ListBox1.ItemIndex]
to jest dokladnie tak na nasze:
ZObiektuListBox1. .WezLancuchONumerze [Numer ostatnio kliknietej pozycji]
no i z tym lancuchem mozesz robic co zechcesz np rozdzielic na cyfre i tekst i wladowac w jakis komunikat. Jak widac uzylem onClick czyli onClickGdziekolwiek dlatego przypisanie tekstu do labela i ogolne wykonanie procedury onClick nie zalezy od tego na jakim elemencie tej listy kliknalem. Gdybys chcial zareagowac w ajkis sposb ciekawszy na to co ktos kliknal to rozbudowujesz procedure:
procedure TForm1.ListBox1Click(Sender: TObject);
var x: integer;
begin
x:=ListBox1.ItemIndex // zapamietuje ostatnio klikniety element listy pod x
case x of // wybor akcji w zaleznosci od posuniec usera
0: begin ... end; //gdy wybrano element 1
1: jakas procedura; // gdy wybrano element 2
2: cotam zechcesz // gdy wybrano element 3
end;
end;
to samo powinno sie dac wykonac na combo boxie i nie tylko, aaaaaa juz widze ze ty na ListView chciales, a nie ListBox umm zaraz sprawdze czy dziala
dla ListView to tez zdaje sie byc banalne bo jakies 5 minut mi zajelo intuicyjne szukanie jak wydobyc taka nazwe :)
procedure TForm1.ListView1Click(Sender: TObject);
begin
Label2.Caption:=ListView1.ItemFocused.Caption;
end;
Tu sprawa jest prosta bo ListView ma wyroznione pole ktore jest aktualnie podswietlone i nazywa sie to pole ItemFocused i nawet nie trzeba na indeksach jezdzic tylko z buta go i wyciagasz od razu caption.
Jezeli nie masz w tym jakiegos upatrzonego chytrze celu to polecam raczej ListBox bo jest prostszy chyba w obsludze i ogolnie mniejszy jako komponent.