Új hozzászólás Aktív témák

  • mandrake83

    csendes tag

    Sziasztok! Van egy problémám amire biztos tök egyszerű a válasz, de valahogy nem bírok rájönni... Van egy listboxom amihez egy gombra kattintva különböző feliratú elemeket adok hozzá. ez így néz ki, pl.:

    listbox4.items[listbox4.items.count]:=' valami '

    Idáig semmi gond, megy is szépen. a gond a törlésnél jelentkezik amit egy másik gombra kattintva szeretnék előhívni. simán DeleteSelected()-el nem tudom törölni sajna, mert vizsgálnom kell azt is, hogy milyen feliratot törlök, ugyanis ez további folyamatokhoz vezet majd. Ha például a ''valami'' feliratú elemet törlöm akkor vegyen el egy számból mondjuk 10-et, de ha nem ''valami'' feliratú elemet törlök akkor ne csináljon semmit. (A listában mindenféle feliratú elem van, nem csak a ''valami'' feliratú). a törlés így néz ki:

    for m:=0 to listbox4.items.count-1 do
    begin
    if (listbox4.selected[m]) and (listbox4.items[m]='valami') then
    begin
    listbox4.DeleteSelected;
    szam:=szam+10;
    end;
    end;

    A törlés működik és el is veszi a szam változóból a 10-et, de MINDIG CSAK AKKOR HA AZ UTOLSÓ ELEMET TÖRLÖM. Tehát 3 elemű listából a 3-at törlöm, majd a 2.-at, majd az 1-t akkor működik minden. De ha én a 3 elemű listából az elsőt akarom törölni akkor leáll a program a ''List index out of bounds(2)'' hibaüzenettel.

    Remélem érthető voltam, és köszi előre is a segítségeteket, mert már fél napja gondolkozom és próbálkozok de nem jön össze.... :O

Új hozzászólás Aktív témák