Einen Eintrag aus der Listbox entfernen


Bevor wir einen Eintrag löschen, sollten wir zunächst herausfinden, ob überhaupt Einträge vorhanden, und ob davon min. einer markiert ist. Wir wollen das Programm ja möglichst logisch gestalten und den Anwender nicht verwirren. Wir ermitteln also zunächst mit der Nachricht "LB_GETCOUNT" die Anzahl der Einträge:

i := SendMessage(hwndListbox, LB_GETCOUNT, 0, 0);

Der Rückgabewert ist entweder die Anzahl der Einträge oder der Wert LB_ERR, der besagt, dass ein Fehler aufgetreten ist. Wenn dieser Fehlercode oder der Wert Null zurückgeliefert werden, sollten wir die Funktion an der Stelle beenden.

Im günstigen Fall können wir uns aber nun den Index des selektierten Eintrages mit der Nachricht "LB_GETCURSEL" holen. Auch hier wird im Fehlerfall LB_ERR zurückgegeben. Ansonsten ist das Ergebnis unser gesuchter Index, und wir können den Eintrag mit "LB_DELETSTRING" löschen:

i := SendMessage(hwndListbox, LB_GETCURSEL, 0, 0);
SendMessage(hwndListbox, LB_DELETESTRING, i, 0);