![]() |
Problem mit entfernen von ListBox einträgen
Wie der Titel des Themas schon sagt hab ich ein Problem mit dem löschen eines bestimmten Beitrags in einer TListBox. In einer ListBox habe ich ein paar einträge. Diese einträge sind auch in einer .ini Datei hinterlegt. Wenn ich jetzt zum beispiel die Einträge: Eintrag1, Eintrag2 und Eintrag3 in der ListBox habe und dann Eintrag3 aus der ListBox und aus der .Ini datei entfernen will löscht der in der ListBox Eintrag1 und Eintrag3 aber in der .Ini datei nur Eintrag3 :?:
Hier ist der Abschnitt der fürs löschen verantwortlich ist:
Delphi-Quellcode:
Kann mir jemand sagen wo der Fehler ist?
begin
if Form2.ListBox1.Items.IndexOf(Edit1.Text) > -1 then begin try Ini:=TIniFile.Create(Result + 'Test.ini'); ini.DeleteKey('Themen', Edit1.Text); finally Ini.Free; end; DeleteFileToRecycleBin(Result + Edit1.Text + '.txt'); for i:=0 to Form2.ListBox1.Items.Count-1 do begin Form2.ListBox1.Items[i]:=Edit1.Text; Form2.ListBox1.Items.Delete(i); end; Form11.Visible := False; end Else begin Showmessage('Datei wurde nicht gefunden'); Form11.Visible := False; end; end; |
Re: Problem mit entfernen von ListBox einträgen
Überleg mal, was der Code:
Delphi-Quellcode:
macht. Löscht er einen Eintrag oder alle Einträge aus der Listbox?
for i:=0 to Form2.ListBox1.Items.Count-1 do
begin Form2.ListBox1.Items[i]:=Edit1.Text; Form2.ListBox1.Items.Delete(i); end; |
Re: Problem mit entfernen von ListBox einträgen
Hi,
weder noch - er löscht jeden mit geradem Index. Besser so:
Delphi-Quellcode:
Grüße vom marabu
var
iDelete: Integer; begin // ... iDelete := Form2.ListBox1.Items.IndexOf(Edit1.Text); if iDelete > -1 then begin try Ini := TIniFile.Create(Result + 'Test.ini'); ini.DeleteKey('Themen', Edit1.Text); finally Ini.Free; end; DeleteFileToRecycleBin(Result + Edit1.Text + '.txt'); { for i:=0 to Form2.ListBox1.Items.Count-1 do begin Form2.ListBox1.Items[i]:=Edit1.Text; Form2.ListBox1.Items.Delete(i); end; } Form2.ListBox1.Items.Delete(iDelete); Form11.Visible := False; end Else begin Showmessage('Datei wurde nicht gefunden'); Form11.Visible := False; end; end; |
Re: Problem mit entfernen von ListBox einträgen
Zitat:
|
Re: Problem mit entfernen von ListBox einträgen
@marabu: Danke jetzt geht es.
|
Re: Problem mit entfernen von ListBox einträgen
Ich hänge mich mal dran, das Thema ist ja nicht so alt.
Ich würde gerne einen bestimmten Eintrag (den markierten) aus meiner Liste löschen. DAs Löschen ansich ist nicht mein Problem, sondern das finden des markierten Eintrages. Leider bietet die ListBox nach meinen Infos keine Funktion, die einem den Int-Wert des markierten Eintrags zurück gibt. Über Selected geht es auch nicht und sonst weiß ich keine Lösung... Hier der Code:
Code:
In der Prcedure b_loeschenClick wird natürlich dann der Eintrag gelöscht...
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin if ereignis_list.Selected[HIER MUSS DER INT WERT REIN] then b_loeschen.Enabled:=True else b_loeschen.Enabled:=False; end; Für Hilfe wäre ich euch sehr verbunden. Die Delphi Hilfe lässt einem zu dem Thema im Stich... |
Re: Problem mit entfernen von ListBox einträgen
Hallo,
Zitat:
![]() Noch einfacher geht es jedoch so:
Delphi-Quellcode:
Grüße
ListBox.DeleteSelected;
|
Re: Problem mit entfernen von ListBox einträgen
Ich glaube, hier geht es nur um das "Switchen" eines Buttons. Da gibt es IMO 2 Möglichkeiten je nach Einstellung von Multiselect.
Wenn MultiSelect eingeschaltet ist:
Delphi-Quellcode:
Ansonsten:
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin b_loeschen.Enabled:=ereignis_list.SelCount > 0; end;
Delphi-Quellcode:
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin b_loeschen.Enabled:=ereignis_list.ItemIndex > -1; end; |
Re: Problem mit entfernen von ListBox einträgen
Delphi-Quellcode:
Tipp:
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin if ereignis_list.Selected[HIER MUSS DER INT WERT REIN] then b_loeschen.Enabled:=True else b_loeschen.Enabled:=False; end;
Delphi-Quellcode:
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin b_loeschen.Enabled := ereignis_list.Selected[ereignis_list.ItemIndex]; // oder // b_loeschen.Enabled := (ereignis_list.SelCount > 0); end; |
Re: Problem mit entfernen von ListBox einträgen
Ah endlich mal eine Hilfe die ich gebrauchen kann. Danke
Danke an Matze...den IntWert des gewählten EIntrags brauche ich später noch. Danke an Nuclear-Ping...hab garnicht dran gedacht das ich den true wert des einen fürs was anderes nehmen kann :) Aber natürlich auhc danke an den Rest... Eine Frage noch. Bei ereignis_list.ItemIndex gibt er mir immer den int-wert des gewählten eintrags zurück? Dachte das bezieht sich auf die ganze Liste...?! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz