Delphi > Firemonkey
Zmeniť poradie TListBoxItem v TListBox
Stanislav Hruška:
Skúšam cvične toto: https://delphi.cz/post/Jednoducha-FMX-mobilni-Android-aplikace-krok-za-krokem.aspx
Nikde neviem nájsť, ako v čase návrhu môžem zmeniť poradie TListBoxItem v TListBox. Je to možné?
tomak586:
Ano možné to je. Já to řeším vyjmutím a novým vložením TListBoxItem.
--- Kód: Delphi --- var SelectedIndex := lbName.ItemIndex; if (SelectedIndex < lbName.Count - 1) then begin var Item: TListBoxItem := lbName.ListItems[SelectedIndex]; lbName.RemoveObject(Item); // remove lbName.InsertObject(SelectedIndex + 1, Item); // insert lbName.ItemIndex := SelectedIndex + 1; // selected item end;
Tento kód ti posune vybraný TListBoxItem o jednu pozici dolu. Pokud chceš nahoru tak budeš kontrolovat SelectedIndex je vetší jak 0 a misto přičítaní budeš odečítat. lbName je TListBox.
Stanislav Hruška:
Dúfal som, že to urobím pomocou ItemIndex. Ale TListBoxItem nič podobné nemá.
Len nerozumiem/neviem kedy a kde mám spustiť Tvoj kód.
Žiaľ, help na wiki mi pre FMX nefunguje už tretí deň.
tomak586:
Třeba jsem tě špatně pochopil, ale měl jsem za to že máš ListBox a v něm chceš změnit pořadí položek, které jsou typem TListBoxItem. A ten můj kod ti posune vybranou položku o jednu pozici dolu. Používam to na tlačítko down a kod kde odečítám používám pro tlačítko up. Metodou InsertObject určuješ index kam TListBoxItem vložíš tak mužeš libovolne v ListBoxu, jen jsi musiš hlídat rozsah aby jsi nebyl mimo.
var Item: TListBoxItem := ListBox1.ListItems[2]; // vyberu polozku na treti pozici
ListBox1.RemoveObject(Item); // Odeberu vybranou polozku z ListBoxu
ListBox1.InsertObject(10, Item); // Vlozim polozku na jedenactou pozici
vandrovnik:
Nestačí tohle?
--- Kód: Delphi --- ListBox1.Items.Move(2, 1);
Navigace
[0] Seznam témat
[#] Další strana
Přejít na plnou verzi