AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Delphi ListBox1 oberstes Item
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi ListBox1 oberstes Item

Ein Thema von l1ko · begonnen am 7. Okt 2020 · letzter Beitrag vom 7. Okt 2020
Antwort Antwort
l1ko

Registriert seit: 7. Okt 2020
2 Beiträge
 
#1

Delphi ListBox1 oberstes Item

  Alt 7. Okt 2020, 10:29
Hallo liebe Community,

ich habe eine warscheinlich ganz simple Frage aber ich bin noch sehr unerfahren mit Delphi deswegen frage ich euch

Meine Frage: Wie kann ich aus einer ListBox das Oberste Item auswählen und löschen? Mit meinem Code nimmt er nur das unterste.

Code:
procedure TForm1.Button6Click(Sender: TObject);

var
ID :integer;
FoundSelected:Boolean;

begin
 FoundSelected :=false;
 for ID:= ListBox1.Items.Count - 1 downto - 0 do
    begin
    if ListBox1.Selected[ID] then
      begin
      FoundSelected := true;
      ListBox1.Items.Delete(ID);
      end;
    end;
if not FoundSelected then ListBox1.Items.Delete(ListBox1.Items.Count-1);
end;
Ich danke schonmal im voraus
  Mit Zitat antworten Zitat
Benutzerbild von runningsoft
runningsoft

Registriert seit: 8. Okt 2004
Ort: Bernau
108 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi ListBox1 oberstes Item

  Alt 7. Okt 2020, 10:38
Wenn du sowieso den obersten Eintrag löschen möchtest, einfach:

ListBox1.Items.Delete(0);
  Mit Zitat antworten Zitat
l1ko

Registriert seit: 7. Okt 2020
2 Beiträge
 
#3

AW: Delphi ListBox1 oberstes Item

  Alt 7. Okt 2020, 10:52
Danke das hat mir schon geholfen
Wenn du sowieso den obersten Eintrag löschen möchtest, einfach:

ListBox1.Items.Delete(0);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 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
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz