[ _v!rus_ @ 06.01.2005. 02:58 ] @
Zna li neko kako da TListView kontrola skroluje svoje Iteme da bi se video onaj koji je izabran?

Npr. TButton u svom OnClick eventu oznacava Item [99] TListView kontrole koja ima 100 Item-a. Bilo koji nacin da koristim (TListItem.Selected, TListView.ItemIndex, TListView.ItemFocused, itd...) ne mogu da nateram TListView da skroluje do tog Item-a!
On JESTE izabran, i kad se skroluje lista vidi se da je izabran, ali nece da skroluje do njega. Postoji TListView.Scroll(DX, DY: Integer), ali DX i DY su pikseli u odnosu na trenutno izabrani Item, pa bi mi onda trebalo i koliki je ItemHeight (u pikselima) da bi izracunao koordinatu izabranog Itema u listi, a ItemHeight zavisi od podesavanja samog OS-a...
[ Milos D @ 06.01.2005. 07:51 ] @
Probaj:

Code:

procedure lvEnsureSelectedIsVisible (lv : TCustomListView);
begin
  if lv.Selected <> nil
     then
        ListView_EnsureVisible (lv.Handle, lv.Selected.index, LongBool(false));
end;
[ _v!rus_ @ 06.01.2005. 15:36 ] @
Radi!
Hvala puno, samo bih dodao da treba dodati CommCtrl u uses stavku interface sekcije da bi ovaj MFC makro radio.
[ Srki_82 @ 06.01.2005. 17:00 ] @
Kad vec radis u Delphi-u koristi ono sto su vec napravili.
ListView1.Items[I].MakeVisible(False) i to je to. Samo postavis promenljivu I na red koji zelis.


[ Milos D @ 06.01.2005. 18:02 ] @
Koristio bi ja, kad bi znao da postoji ;) Sad znam, hvala!

Dakle,

listview.selected.MakeVisible
[ bancika @ 12.01.2005. 15:20 ] @
kad smo vec kod ListView-a:
hocu da napravim da ComboBoxom moze da se menja vrednost subitem-a. jednostavna stvar, ima samo jedan subitem i za svaki element su iste opcije izlistane.
jel neko zna kako resiti. u principu je problem kod skrolovanja i kad selektovani item nije vidljiv