Hallo zusammen
Ich habe folgendes Problem: Ich fülle eine ListBox wie folgt ab:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| begin Listbox1.Items.Clear; try TempQuery.Close; TempQuery.SQL.Clear; TempQuery.SQL.Add('Select distinct Artikel from Artikel'); TempQuery.Open; while not TempQuery.Eof do begin ListBox1.Items.Add(TempQuery.Fields[0].AsString); TempQuery.Next; end; ListBox1.ItemIndex := 0; except on EDatabaseError do MessageDLG('Kann keine Artikel finden.', mtError, [mbOK], 0) end; |
Das funktioniert auch, aber das Problem ist, dass es mir bei der Augabe an erster Stelle eine leere Zeile anzeigt (in der DB kann es auch leere Einträge haben). Wenn ich jetzt mit:
Delphi-Quelltext
1:
| ListBox1.Items.Delete(0); |
die erste Zeile lösche, so zeigt es mir alles richtig an; ABER, wenn es in der DB keine leeren Einträge hat, so löscht es mir natürlich den ersten Eintrag. Und genau das möchte ich verhindern. Ich möchte, dass es mir den ersten Eintrag nur dann löscht wenn diese auch leer ist. Ich habe es auch so versucht:
Delphi-Quelltext
1:
| ListBox1.Items.Delete(ListBox1.Items.IndexOf('')); |
Doch das liefert nicht das gewünschte Ergebnis (= die leere Zeile ist immer noch da)
Hat jemand einen Tipp, was ich machen kann?
Besten Dank für Euere Hilfe
hube