Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListBox-Items "kontrolliert" löschen (https://www.delphipraxis.net/171161-listbox-items-kontrolliert-loeschen.html)

DelphiNoob1.0 23. Okt 2012 20:09

ListBox-Items "kontrolliert" löschen
 
Hallo Delphi-Genies,
ich arbeite momentan am Thema ListBox und habe eine Frage zum löschen von Strings.

Delphi-Quellcode:
procedure TForm1.BtMinusClick(Sender: TObject);
var
name :integer;
begin
 for name:= ListBox.Items.Count - 1 downto 0 do
    if ListBox.Selected[name] then
      ListBox.Items.Delete(name)
end;
wie man erkennen kann(hoffe ich)kann man durch drücken des Button[BtMinus] entweder ein oder mehrere makierte Strings löschen. Meine Frage ist wie man das Letzte Wort in der ListBox löschen kann.

Sry mein erster Beitrag :D. Bestimmt Verstoße ich gegen viele Regeln (sorry :duck: )

P.S. Also löschen indem man auf den Button klickt und nícht einfach das letzte Wort makiert :D

Bummi 23. Okt 2012 20:17

AW: ListBox-Items "kontrolliert" löschen
 
mhhhh, Deine Routine tut was sie soll...
das löschen des letzen Items unabhängig von der Selektion wäre
Delphi-Quellcode:
 ListBox.Items.Delete(ListBox.Items.Count-1);
aber wahrscheinlich habe ich dir Frage falsch verstanden...

DelphiNoob1.0 23. Okt 2012 20:23

AW: ListBox-Items "kontrolliert" löschen
 
Danke für die schnelle Antwort! Also ich habe das jetzt mit else angefügt aber wenn ich auf mein minus button drücke löscht er alle einträge..

Delphi-Quellcode:
procedure TForm1.BtMinusClick(Sender: TObject);
var
name :integer;
begin
 for name:= ListBox.Items.Count - 1 downto 0 do
    if ListBox.Selected[name] then
      ListBox.Items.Delete(name)
    else
      ListBox.Items.Delete(ListBox.Items.Count-1);
end;
(Ich bin neu auf dem Gebiet Delphi [nur wegen Informatik in der Schule]) :)

Bummi 23. Okt 2012 20:29

AW: ListBox-Items "kontrolliert" löschen
 
meinst Du so?

Delphi-Quellcode:
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;

DelphiNoob1.0 23. Okt 2012 20:36

AW: ListBox-Items "kontrolliert" löschen
 
Yeah!

Oh, der Code ergibt Sinn, aber so weit sind wir noch nicht in der Schule :D Horizont erweitert. Vielen Dank!

MfG
DelphiNoob

Popov 23. Okt 2012 20:43

AW: ListBox-Items "kontrolliert" löschen
 
Ich gebe zu deine Aufgabe nicht richtig verstanden zu haben, auch wenn ich den Code lesen kann. Ist es so, dass du alle selektierten Items löschen willst, und wenn kein Item selektiert war, dann den letzten Item löschen?

DelphiNoob1.0 23. Okt 2012 20:50

AW: ListBox-Items "kontrolliert" löschen
 
Ja genau richtig erkannt, das Problem ist gelöst und der Thread kann geschlossen werden :D

DeddyH 24. Okt 2012 07:11

AW: ListBox-Items "kontrolliert" löschen
 
Hmm...
Delphi-Quellcode:
if ListBox1.SelCount > 0 then
  ListBox1.DeleteSelected
else if ListBox1.Items.Count > 0 then
  ListBox1.Items.Delete(ListBox1.Items.Count - 1);
Ungetestet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 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