[gelöst] Checklistbox Multiselect Einträge delete

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
dash_develop
Beiträge: 38
Registriert: So 15. Mai 2016, 13:33

[gelöst] Checklistbox Multiselect Einträge delete

Beitrag von dash_develop »

Hallo Leute,

kurze Frage. Ich habe eine CheckListBox auf meiner GUI mit Einträgen.
Jetzt habe ich einen Button der mir alle ausgewählten Einträge löschen soll.
Mein Problem ist, dass er nur einzelne Einträge löscht, aber nicht alle ausgewählten auf einmal.
Habe ich etwas in meinem Quellcode falsch gemacht oder ist das evtl. einfach gar nicht möglich?

Code: Alles auswählen

procedure TDatabase_Form.BitBtn_deleteClick(Sender: TObject);
var
  i: integer;
begin
CheckListBox1.MultiSelect:=True;
  if CheckListBox1.SelCount > 0 then begin
    For i := CheckListBox1.Items.Count - 1 downto 0 do
      if CheckListBox1.Selected [i] then
         CheckListBox1.Items.Delete (i);
  end else begin
      ShowMessage('Bitte erst den Eintrag auswählen!');
  end;
end


Bin über jegliche Denkanstöße dankbar.

Vielen Dank im Voraus.

Mit freundlichen Grüßen
dash_develop :)
Zuletzt geändert von dash_develop am Mi 27. Jul 2016, 17:44, insgesamt 1-mal geändert.

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Checklistbox Multiselect Einträge delte

Beitrag von shokwave »

Hi,

also dein Code funktioniert bei mir. Alle markierten (farblich hinterlegten) Zeilen werden gelöscht.

Willst du hingegen alle Zeilen die angehakt sind löschen, musst du statt

Code: Alles auswählen

CheckListBox1.Selected [i]

mit

Code: Alles auswählen

CheckListBox1.Checked [i]

arbeiten.

P.S.: Die Zeile mit dem Multiselect ist an der Stelle überflüssig. Die gehört ins OnCreate oder du stellst es im ObjektInspektor ein.
mfg Ingo

dash_develop
Beiträge: 38
Registriert: So 15. Mai 2016, 13:33

Re: Checklistbox Multiselect Einträge delte

Beitrag von dash_develop »

Hallo shokwave,

vielen Dank für deine schnelle Antwort.
Danke für die super Erklärung. Habe total auf dem Schlauch gestanden.
Habe gedacht das..

Code: Alles auswählen

CheckListBox1.Checked [i]

nicht klappt, da ich ständig an

Code: Alles auswählen

ChecklistBox1.Items.Checked

gedacht habe. Dieses blöde Items war zu viel in meiner Denkweise.

Danke.

Mit freundlichen Grüßen
dash_develop

Antworten