[Delphi] Uzupełnianie listboxa pętlą

0
procedure Tf_produkty.b_dod_prod_zamClick(Sender: TObject);
var nazwa:string;
    i:integer;
begin
nazwa:=grid_produkty.Fields[2].AsString;

for i:=0 to lb_zamawiane_prod.Items.Count do
  begin
    if lb_zamawiane_prod.Items[i]='' then lb_zamawiane_prod.Items[i]:=nazwa;
  end;
end;

Siedzę już troche nad aplikacją i chyba nie widzę jakiejś pierdoły. Zatrzymuje się na linii

if lb_zamawiane_prod.Items[i]='' then lb_zamawiane_prod.Items[i]:=nazwa;

i wyrzuca list index out of bounds. Kto mnie oświeci? :)

0

lb_zamawiane_prod.Items.Count - 1

0

Ale to bez sensu. Weźmy przypadek, w którym listbox jest pusty. Items.Count zwróci 0

0

no i co z nim?

0

W przypadku, gdy Listbox jest pusty pętla nie wykonuje się wcale, a przeciez chodzi o to, żeby dopisac wartość do Items
Zastanawiam się czy tu w ogóle potrzebna mi pętla...

No jasne że nie:

procedure Tf_produkty.b_dod_prod_zamClick(Sender: TObject);
var nazwa:string;
    i:integer;
begin
nazwa:=grid_produkty.Fields[2].AsString;
lb_zamawiane_prod.Items[lb_zamawiane_prod.Items.Count]:=nazwa;
end;
0

DOPISUJE się inaczej - wpisz w delphi lb_zamawiane_prod.Items wciśnij następnie kropkę i zastanów się, która metoda może odpowiadać za DOPISANIE elementu

0

Dobrze, że była na A :P

0

A jeszcze w temacie: Jest coś jak Add, ale do usuwania elementów? Przyglądam się liście dostępnych poleceń ale nie widzę nic.

EDIT: Ok, znalazłem: DeleteSelected

0
JacekKw napisał(a)

Przyglądam się liście dostępnych poleceń ale nie widzę nic.

"To niech pan idzie do lekarza, od oczów".

listbox1.items.delete(index_itema);
0
JacekKw napisał(a)

EDIT: Ok, znalazłem: DeleteSelected

Cimakowi też przyda się okulista

0

delete(index) a DeleteSelected to dwie rozne rzeczy.
chyba ze takie rozwiazanie faktycznie najlepiej spelnia Twoje oczekiwania (lepiej od "zwyklego" delete), wtedy przepraszam [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1