Delphi > Firemonkey

Zmeniť poradie TListBoxItem v TListBox

(1/3) > >>

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