Zaznaczenie w Listboxie.

0

Witka

Jeden z was już mi tu trochę pomógł ( dzięki Ci ), jakoś radzę sobie teraz z poprawkami, ale mam problem z listboxem.
Googlowałem na temat zaznaczenia pozycji w listboxie.

Te zaznaczenie jest mi bardzo potrzebne, bo np. jeśli zaznacze na listboxie pozycję i dam przycisk DEL - niech ją usunie.
Jak np. wyszukam pozycję na listboxie, niech ją zaznaczy na czerwono itd.

Czy ktoś zna magiczną formułkę na zaznaczenie pozycji w listboxie i w jakim zdarzeniu je dać ?

Pozdro
Adaxuss

0

ListBox1.ItemIndex:=zaznaczana_pozycja

0

No dzięki, ale w jakim evencie to wrzucić ? Właśnie z tym tez mam problem, ze nie chce to pod żadnego buttona wrzucać tylko przy samym kliknięciu na konkretną linie.

0

"przy samym kliknięciu na konkretną linie" kliknięty Item sam się zaznaczy a ItemIndex przyjmie odpowiednią wartość. Wystarczy go odczytać.
Jeżeli chcesz wykryć, że user kliknął, to wykorzystaj zdarzenie OnClick ListBoxa.

0

Kolego ja wiem, że to za to odpowiada ItemIndex ale chodzi mi dokładnie o rozwiazanie problemu.

Więc może chociaż składniowo pomożesz :)

If Listbox.ItemIndex[i] and  Key = #13 then DeletebuttonClick(Sender);

Czyli jeśli zaznacze wpis w listboxie i nacisne enter wtedy wykonaj przycisk usuniecia.

dodanie znacznika <code class="delphi"> - furious programming

0

If Listbox.ItemIndex[i] and Key = #13 then DeletebuttonClick(Sender);

  1. Kolejność operatorów
  2. Listbox.ItemIndex to nie tablica
  3. Tak się nie wywołuje metod. Używaj TButton.Click.

Kolego ja wiem, że to za to odpowiada ItemIndex ale chodzi mi dokładnie o rozwiazanie problemu.

Czekaj czekaj, gotowiec?

Czyli jeśli zaznacze wpis w listboxie i nacisne enter wtedy wykonaj przycisk usuniecia.

Gdy zostanie naciśnięty enter, sprawdzaj czy jest fokus na ListBox, czy jest wybrany poprawny item, i go usuwaj. Na gotowy kod ode mnie nie licz, to już jest tak proste, że jeżeli umiesz programować i googlować to bez problemu dasz sobie radę.

0

Warunki należy przy takim ifie umieszczać w nawiasach, poczytaj na google o tym. Poza tym widzę, że coś kombinujesz z naciskanym klawiszem, więc czy to tak trudno zobaczyć na listę zdarzeń w zakładce Events Object Inspectora i dojrzec, że są tam zdarzenia zaczynające się od słów OnKey...?

0

If (Listbox.ItemIndex>=0) and (Key = #13) then DeletebuttonClick(Sender);

olesio napisał(a):

... więc czy to tak trudno zobaczyć na listę zdarzeń w zakładce Events Object Inspectora i dojrzec, że są tam zdarzenia zaczynające się od słów OnKey...?
A jak sądzisz skąd się wzięła ta sprawdzana zmienna Key?

0
_13th_Dragon napisał(a):

If (Listbox.ItemIndex>=0) and (Key = #13) then DeletebuttonClick(Sender);

Oczywiście poprawnie wywołać metody buttona nie można. Metody już byście nie wykonali gdyby nie Sender który wysyłacie z waszego Sendera (bezsensownie).

A jak sądzisz skąd się wzięła ta sprawdzana zmienna Key?

Umiesz zgadywać? Nie tylko ty. Tylko jak masz buga, to też zgadujesz gdzie on jest wyłączając losowe części kodu, czy używasz debuggera do wykrycia przyczyny błędu i poprawiasz kod mając to na uwadze? Metody failsafe użył @olesio tutaj. I akurat jest ona pewniejsza niż twoje zgadywania.

0

A delete w ASCII jaki ma # ? 127 ? Bo jak tak to mi nie działa ten numer ;/

Mam:

if Key = #127 then showmessage('usuwam');

tak na razie zrobiłem zeby wypróbować klawisz DEL ale nie śmiga.
No i teraz kombinuje z tym focusem zeby usunelo zaznaczoną linie ;/

Muszą się spełnić dwa warunki if listbox.focused and key =#127 then ... ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0