AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem mit entfernen von ListBox einträgen
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit entfernen von ListBox einträgen

Ein Thema von 01001 · begonnen am 2. Aug 2007 · letzter Beitrag vom 10. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
01001

Registriert seit: 27. Jul 2007
Ort: Witten
26 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit entfernen von ListBox einträgen

  Alt 2. Aug 2007, 13:18
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:
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;
Kann mir jemand sagen wo der Fehler ist?
Ich denke, also bin ich.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit entfernen von ListBox einträgen

  Alt 2. Aug 2007, 13:22
Überleg mal, was der Code:
Delphi-Quellcode:
  for i:=0 to Form2.ListBox1.Items.Count-1 do
  begin
    Form2.ListBox1.Items[i]:=Edit1.Text;
    Form2.ListBox1.Items.Delete(i);
  end;
macht. Löscht er einen Eintrag oder alle Einträge aus der Listbox?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Problem mit entfernen von ListBox einträgen

  Alt 2. Aug 2007, 13:26
Hi,

weder noch - er löscht jeden mit geradem Index. Besser so:

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit entfernen von ListBox einträgen

  Alt 2. Aug 2007, 13:28
Zitat von marabu:
weder noch - er löscht jeden mit geradem Index. Besser so:
OK, so genau wollte ich es nicht wissen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
01001

Registriert seit: 27. Jul 2007
Ort: Witten
26 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit entfernen von ListBox einträgen

  Alt 2. Aug 2007, 13:32
@marabu: Danke jetzt geht es.
Ich denke, also bin ich.
  Mit Zitat antworten Zitat
RobSteward

Registriert seit: 23. Okt 2007
9 Beiträge
 
#6

Re: Problem mit entfernen von ListBox einträgen

  Alt 10. Nov 2007, 01:25
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:
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;
In der Prcedure b_loeschenClick wird natürlich dann der Eintrag gelöscht...

Für Hilfe wäre ich euch sehr verbunden. Die Delphi Hilfe lässt einem zu dem Thema im Stich...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit entfernen von ListBox einträgen

  Alt 10. Nov 2007, 06:59
Hallo,

Zitat von RobSteward:
Leider bietet die ListBox nach meinen Infos keine Funktion, die einem den Int-Wert des markierten Eintrags zurück gibt.
Ich nehme an, mit dem "Int-Wert" meinst du den Index des gewählten Eintrags. Dieser steht in Delphi-Referenz durchsuchenItemIndex.

Noch einfacher geht es jedoch so:

ListBox.DeleteSelected; Grüße
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Problem mit entfernen von ListBox einträgen

  Alt 10. Nov 2007, 08:49
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:
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin
  b_loeschen.Enabled:=ereignis_list.SelCount > 0;
end;
Ansonsten:
Delphi-Quellcode:
procedure Tf_ereignis.ereignis_listClick(Sender: TObject);
begin
  b_loeschen.Enabled:=ereignis_list.ItemIndex > -1;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#9

Re: Problem mit entfernen von ListBox einträgen

  Alt 10. Nov 2007, 08:52
Delphi-Quellcode:
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;
Tipp:

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;
  Mit Zitat antworten Zitat
RobSteward

Registriert seit: 23. Okt 2007
9 Beiträge
 
#10

Re: Problem mit entfernen von ListBox einträgen

  Alt 10. Nov 2007, 13:13
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...?!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:17 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