Chyba proste

0

Witajcie... to chyba proste (przyznaje że się ucze dopiero pisać w Delphi - mam Delphi 7 Enterprise) a moje pytanko to jak po kliknięciu w przycisk ustalić jaką pozycję w ort! ListView ktoś zaznaczył ( tzn. jaki jest jej nr na liście, oraz co tam jest napisane) np.:

przykładowa lista:
1- Auto
2- rower
3- rolki

ktoś coś wybiera, klika w przycisk i się wyświetla: "Wybrałeś 2 pozycję z listy (rower) - dziękujemy"

Z góry wszystkim bardzo dziękuję za pomoc [cya]

0

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.

0

przykładowa lista:
1- Auto
2- rower
3- rolki

Jeśli się nie myle, to numery powinny być o jeden w dół (lista zaczyna się od numeru 0).

0

skoro jestes poczatkujacy (ja tez nie jestem za dobry:P ) to poczytaj sobie kursy, przejrzyj forum,uzywaj wyszukiwarki i przeczytaj posta autorstwa Lofix'a :D

0

Ja tam jak wiem odpowiadam na wszystko i chyba nie ma sensu dopisywac w poliwe tematow "poczytaj manuale itp" skoro odpowiedz sie juz pojawila i autor nie spamuje dalszymi prosbami o pomoc ... takie niemile adwokatowanie w zamknietej sprawie tez nie jest eleganckie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.