Ĺadny brzuch
Wiatm chodiz mi o skrót klawiaturowy do TFlatListBox. Mianowicie o to że jak np. nacisnę klawisz b to lista zaznaczy mi wpis zaczynający się na literę b. Jak nacisnę c to lista zaznaczym mi wpis (na liscie) zaczynający się na c.
Problem w tym że TFlatListBox nie ma zdarzenia onkeypress. :o
Próbowałem zrobić to przy zdarzeniu TForm1.OnKeypPress
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); var i: integer; begin for i := 0 to lista.Items.Count -1 do begin if Lista.Items[i][1] = key then begin if GetIndex <> -1 then {getindex pobiera zaznaczony element na liscie, jesli jest -1 to znaczy ze nic niejest zaznaczone} Lista.Selected[GetIndex] = false; Lista.Selected[i] := true; exit; end; end; end;
NIestety powyższy kod działa, ale za pierwszym razem, gdy próboje już nicisnąc drugą litere, nic sie nie dzieje
Użycie TlistBoź nie wchodzi w grę!
:pomocy:
Użytkownik pat edytował ten post 29 lipiec 2006, 12:20
Masz keypreview formy na true?
Masz keypreview formy na true?
THX pomogło :D
Tylko jedna pozsotała kwestia: Chcę aby lista auto sie przywijała, czyli jestem na początku naciskam "z" i lista auto przewija się na koniec gdzie jest wyraz na z...
Będe bardzo wdzięczny ;)
Jesli nie planujesz zaznaczania wielu obiektow (tylko jeden zaznaczony) to zamiast selected uzywaj ItemIndex. Jesli zmienisz wartosc ItemIndex to sie automatycznie przewinie.
Jesli nie planujesz zaznaczania wielu obiektow (tylko jeden zaznaczony) to zamiast selected uzywaj ItemIndex. Jesli zmienisz wartosc ItemIndex to sie automatycznie przewinie.
Nie używam multiselectu, ale problem jest w tym, że... TFlatListBox nie ma ItemIndex(gdyby było napewno bym używał ;) )!
Dlatego w przykładzie używam polecenia GetIndex, które sam napisałem i bazuje ono własnie na selected :(
Użytkownik pat edytował ten post 29 lipiec 2006, 18:45
Masz procedure ScrollBy, licz ile ma jeden obiekt wyskosci, ile ich jest i przewijaj o tyle pikseli.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Problem w tym że TFlatListBox nie ma zdarzenia onkeypress. :o
Próbowałem zrobić to przy zdarzeniu TForm1.OnKeypPress
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); var i: integer; begin for i := 0 to lista.Items.Count -1 do begin if Lista.Items[i][1] = key then begin if GetIndex <> -1 then {getindex pobiera zaznaczony element na liscie, jesli jest -1 to znaczy ze nic niejest zaznaczone} Lista.Selected[GetIndex] = false; Lista.Selected[i] := true; exit; end; end; end;
NIestety powyższy kod działa, ale za pierwszym razem, gdy próboje już nicisnąc drugą litere, nic sie nie dzieje
Użycie TlistBoź nie wchodzi w grę!
:pomocy:
Użytkownik pat edytował ten post 29 lipiec 2006, 12:20
Masz keypreview formy na true?
Masz keypreview formy na true?
THX pomogło :D
Tylko jedna pozsotała kwestia: Chcę aby lista auto sie przywijała, czyli jestem na początku naciskam "z" i lista auto przewija się na koniec gdzie jest wyraz na z...
Będe bardzo wdzięczny ;)
Jesli nie planujesz zaznaczania wielu obiektow (tylko jeden zaznaczony) to zamiast selected uzywaj ItemIndex. Jesli zmienisz wartosc ItemIndex to sie automatycznie przewinie.
Jesli nie planujesz zaznaczania wielu obiektow (tylko jeden zaznaczony) to zamiast selected uzywaj ItemIndex. Jesli zmienisz wartosc ItemIndex to sie automatycznie przewinie.
Nie używam multiselectu, ale problem jest w tym, że... TFlatListBox nie ma ItemIndex(gdyby było napewno bym używał ;) )!
Dlatego w przykładzie używam polecenia GetIndex, które sam napisałem i bazuje ono własnie na selected :(
Użytkownik pat edytował ten post 29 lipiec 2006, 18:45
Masz procedure ScrollBy, licz ile ma jeden obiekt wyskosci, ile ich jest i przewijaj o tyle pikseli.