Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Letztes Item einer Lisbox löschen (https://www.delphipraxis.net/10699-letztes-item-einer-lisbox-loeschen.html)

SkyLord 23. Okt 2003 16:50


Letztes Item einer Lisbox löschen
 
Hallo,

ich suche für Delphi 5 einen Befhel mit dem man das letzte Item einer Listbox löschen kann.
Kann mir jemand helfen?

Danke

toms 23. Okt 2003 16:52

Re: Letztes Item einer Lisbox löschen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 iLetztesItem: Integer;
begin
  iLetztesItem := ListBox1.Items.Count-1;
  if iLetztesItem > -1 then
    ListBox1.Items.Delete(iLetztesItem);
end;

danku 3. Mai 2006 20:09

Re: Letztes Item einer Lisbox löschen
 
wenn kein item aus einer tstringgrid selektiert ist aber diese passieren soll(zumindest das letzte item) wieso funzt das dann net?


Delphi-Quellcode:
last:= lbfilter.Items.Count-1;
  if last> -1 then
    lbfilter.selected[last];

Hawkeye219 3. Mai 2006 20:17

Re: Letztes Item einer Lisbox löschen
 
Hallo danku,

so wäre es richtig:

Delphi-Quellcode:
last:= lbfilter.Items.Count-1;
  if last> -1 then
    lbfilter.selected[last] := True;
Der Compiler meldet keinen Fehler, weil

Delphi-Quellcode:
lbfilter.selected[last];
den Aufruf einer booleschen Funktion darstellt, deren Rückgabewert verworfen wird.

Gruß Hawkeye

danku 3. Mai 2006 20:48

Re: Letztes Item einer Lisbox löschen
 
hab noch eine schönere variante gemacht:

danke für deinen tipp
Delphi-Quellcode:
for i:=lbfilter.items.Count-1 downto 1
  do begin
  if lbfilter.Items.Strings[i] = lbfilter.Items.Strings[i-1]
  then begin
  showmessage('Redundanz Problem');
  lbfilter.selected[i] := True;
  lbfilter.DeleteSelected;

das problem ist aber noch das der sobald die doppelte zahl ganz unten in der tstringgrid steht, eine fehlermeldung kommt. ist die doppelte zahl weiter oben, geht das ohne probleme.
hast du einen lösungsvorschlag?

danku 6. Mai 2006 11:02

Redundanz vermeiden
 
hab da noch eine weitere Frage:

ich setz die daten von einem Tedit in eine Tlistbox:

Delphi-Quellcode:
//Redundanzprüfung!
for i:=lbfilter.items.Count-1 downto 1
  do begin
  if lbfilter.Items.Strings[i] = lbfilter.Items.Strings[i-1]
  then begin
  showmessage('Redundanz Problem');
  lbfilter.selected[i-1] := True;
  lbfilter.DeleteSelected;
  //Zeile markieren
  end;
die prüfung funktioniert einwandfrei, bis aber eine zahl in das Tedit geschrieben wird,
die in der tlistbox an letzter stelle steht. da gibts einen crash.
wie kann ich den umgehen zumal ja der rest auch geht?

SirThornberry 6. Mai 2006 11:59

Re: Redundanz vermeiden
 
Zitat:

Zitat von danku
hab da noch eine weitere Frage:...

Wenn du eine neue Frage hast, mach bitte einen neuen Thread auf sonst wird es zu unübersichtlich.

Da die Ausgangsfrage inzwischen schon längst geklärt ist mach ich hier mal zu damit es nicht noch mehr OT wird.

*** LOCKED ***


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