![]() |
Bestimmten Eintrag auus StringList löschen
Hi,
Delphi-Quellcode:
Auch wenn die bedingung erfüllt ist wird der eintrag nicht gelöscht..
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var lLine: Integer; Begin lLine := 0; While ( lLine < onlist.Count ) Do If onlist.strings[lLine] = Edit2.Text Then Begin onlist.delete(lLine); End; end; ich weiß leider nich warum, ich hoffe ihr könnt mir helfen??? Manchmal gibt es einen Fehler dass das Maximum überschritten werde ... Gruß ByStones |
Re: Bestimmten Eintrag auus StringList löschen
Wo zählst denn du deinen Zähler hoch?
Das ganze geht auch irgendwie so:
Delphi-Quellcode:
onList.delete(onlist.indexof(edit2.text));
Edit: Schreibfehler..hab mal aus dem onLust ein onList gemacht. |
Re: Bestimmten Eintrag auus StringList löschen
Eine etwas andere Herangehensweise. :)
Delphi-Quellcode:
Es werden alle Einträge gelöscht und man läuft nicht Gefahr über die Grenzen hinauszulaufen. :)
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; begin for i := Memo1.Lines.Count -1 downto 0 do begin if (Memo1.Lines[i] = Edit1.Text) then Memo1.Lines.Delete(i); end; end; |
Re: Bestimmten Eintrag auus StringList löschen
Zitat:
bei deinem code passiert dass was bei mir auch passiert, der name wird bei jedem start eins mehr... |
Re: Bestimmten Eintrag auus StringList löschen
Ich denke, das Beil liegt woanders begraben. Wird die Procedure überhaupt aufgerufen? Leg mal nen Breakpoint [F5] innerhalb dieser Prozedur!
|
Re: Bestimmten Eintrag auus StringList löschen
Zitat:
ich hab keinen plan wo der fehler liegt, soll ich mal den kompletten code posten ??? |
Re: Bestimmten Eintrag auus StringList löschen
Zitat:
-Deklaration von onlist -Wo wird sie created, wo aufgelöst -Wo beschrieben und -->alles was mit onlist so zu tun hat |
Re: Bestimmten Eintrag auus StringList löschen
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Size := 256; SetLength(Benutzername, Size); GetUserName(PChar(Benutzername), Size); SetLength(Benutzername, Size); if(benutzername='KatevasK') or (benutzername='HamannL') then close; Edit2.Text := BenutzerName; list := TStringList.Create; ini := tinifile.create(extractfilepath(paramstr(0))+'pfade.ini'); pfad := ini.ReadString('pfade', 'serverpfad', ''); Memo1.ReadOnly := true; onlist:=TStringList.Create; pfad2:=ini.ReadString('pfade','on',''); onlist.LoadFromFile(pfad2); onlist.Add(benutzername); onlist.SaveToFile(pfad2); ii:=-1; i:=onlist.Count; if i=ii then begin ii:=-1; end; for i := 0 to OnList.Count -1 do ListBox1.Items.Add(OnList.Strings[i]); end;
Delphi-Quellcode:
das is es
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var y: Integer; begin for y := Memo1.Lines.Count -1 downto 0 do begin if (Memo1.Lines[y] = Edit1.Text) then Memo1.Lines.Delete(y); end; end; |
Re: Bestimmten Eintrag auus StringList löschen
Hallo,
dein Code löscht die durch Edit2 bestimmten Zeilen nur dann, wenn sie am Anfang von onList stehen, weil du deinen index nicht anpasst.
Delphi-Quellcode:
Getippt und nicht getestet.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var lLine: Integer; Begin lLine := 0; // onlist.BeginUpdate; While ( lLine < onlist.Count ) Do If SameText(onlist[lLine], Edit2.Text) Then onlist.delete(lLine) Else Inc(lLine); // onlist.EndUpdate; end; Grüße vom marabu |
Re: Bestimmten Eintrag auus StringList löschen
Ja, und wo löscht du den Namen wieder aus der Liste am Ende? Du sagtest, er solle am Ende wieder rausgelöscht werden - davon sehe ich nichts. OnList und Memo1 sind unterschiedliche Dinge und zum anderen sehe ich nicht, wo du die Liste ein zweites Mal speicherst...
marabu: AnsiSameText(): Komma zwischen den beiden Argumenten vergessen umzustellen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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