Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - CheckBoxList eintrag löschen


Luncustaf - So 27.10.02 20:16
Titel: CheckBoxList eintrag löschen
hi,

hab hier ne checkboxlist und dort will ich sachen hinzufügen und löschen das hinzufügen is ja kein problem :>

nur das löschen


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
i : integer;
begin
for i := 0 to CheckBoxList1.Items.Count -1 do
begin
    if CheckBoxList1.Selected[i] then
    begin
        Check BoxList1.Items.Delete(i);
    end;
end;



so sollte es eigentlich gehen tut es aber net :(

kann mir jemand helfen?

gr€€tz


Christian S. - So 27.10.02 20:44

Hi!

Du musst das ganze mit  FOR i:=CheckListBox1.Items.Count-1 DOWNTO 0 DO versuchen. Dann wirst Du keinen Fehler mehr erhalten.

MfG,
Peter

P.S.: Bist Du sicher, dass Du nicht "Checked" abfragen willst?


Luncustaf - So 27.10.02 20:58

hi,

danke für die prompte antwort an das checked hab ich agr net gedacht aber hat geholfen thx :>

kannst du mir vllt noch sagen wieso ich hier ein Downto 0 nehmen muss ??


gr€€tz


Christian S. - So 27.10.02 21:20

Oh, ja, klar:
Wenn Du am Anfang Items von 0 bis 10 hast, wird die Schleife auch von 0 bis 10 laufen. Wird währenddessen aber z.B. Item Nr.5 gelöscht, dann gibt es kein Item 10 mehr. Also bekommst Du eine Fehlermeldung, wenn Du dieses dann ansprechen möchtest.
Machst Du es andersherum, bekommst Du diesen Fehler nicht: du fängst bei 10 an und gehst bis 0 herunter. Löschst Du Item Nr.5, ist es Dir völlig egal, dass es Item 10 danach nicht mehr gibt, denn das hast Du ja schon erledigt.

MfG,
Peter