Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi ListBox1 oberstes Item

  Alt 7. Okt 2020, 10:58
Zitat:
Mit meinem Code nimmt er nur das unterste
Ist denn irgendwas selektiert?

Wenn nicht, dann macht der Code doch genau das, was er soll -> das letzte Löschen.
Wie man hier "letzten Index" (Count-1) gegen "ersten Index" (0) ersetzt, wurde ja schon genannt.

PS: Ich empfehle die Benutzung des Debuggers.
* Halpepunkt [F9] auf die erste Codezeile dieser Methode
* und dann mit F8 und/oder F7 schrittweise durch den Code gehen und schauen was der macht.



Können hier mehrere oder nur ein Item selektiert sein? (MultiSelect)
Wenn nur SingleSelect, dann geht es auch direkt. (ItemIndex ist der Index des Selectierten Fokusierten)
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
  if ListBox1.ItemIndex >= 0 then
    ListBox1.Items.Delete(ListBox1.ItemIndex) // lösche Selektiertes
  else // wenn nichts Selektiert, dann
    ListBox1.Items.Delete(ListBox1.Items.Count-1); // lösche Letztes (oder Erstes, mit Index 0)
end;
PS: Die Benamung ist etwas "grauenhaft".
* "Button6" sagt nicht aus was es ist (irgendwas mit Delete oder Löschen Loeschen im Namen wäre angebracht)
* und "ID" ist hier kein Ident, sondern ein Index, also sollte es auch z.B. i oder Index heißen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat