![]() |
Listbox Item überschreiben
Hallo zusammen,
ich habe eine Frage zum Ändern eines bestimmmten Eintrags in einer ListBox. Ich habe im Prinzip 2 Textdateien, die beide eingelesen werden und deren Inhalte jeweils in einer Listbox ausgegeben werden. Beide Dateien enthalten die gleiche Anzahl an zeilen! Wenn ich nun in der ersten Listbox ein Element auswähle, wird das entsprechende Element (mit dem gleichen Index) der zweiten Listbox in einem Edit angezeigt. nun kommts... Der Benutzer soll nun diesen Eintrag ändern können und über einen Button Speichern die Zeile in der Datei ÜBERSCHRIEBEN werden. Bis jetzt bekomm ich es immer nur hin, dass er den Text am ENDE oder am ANFANG einfügt, aber icht überschreibt. Kann mit da jemand einen Tipp geben? Ich steh da wohl gerade ziemlich auf dem Schlauch... Liebe Grüße Steffi PS: Das Edit fülle ich so:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var i: Integer; begin for i := 0 to ListBox1.Items.Count -1 do begin if ListBox1.Selected[i] then Memo1.text := ListBox2.Items.Strings[i]; end; end; |
Re: Listbox Item überschreiben
Dreh doch die Zuweisung einfach um:
Delphi-Quellcode:
ListBox2.Items.Strings[<index>] := Memo1.Text;
|
Re: Listbox Item überschreiben
Versuch es mal so:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var i: Integer; begin for i := 0 to ListBox1.Items.Count -1 do begin if ListBox1.Selected[i] then Memo1.Lines[i] := ListBox2.Items[i]; end; end; |
Re: Listbox Item überschreiben
Zitat:
|
Re: Listbox Item überschreiben
Zitat:
Zitat:
Zitat:
|
Re: Listbox Item überschreiben
Oh...
Sorry, da habe ich mich wohl vertan. Ich benutze ein edit. Kein Memo. Hast du mir vielleicht noch einen Tipp, wie ich die Zeile dann überschreiben kann? Liebe Grüße Steffi |
Re: Listbox Item überschreiben
Delphi-Quellcode:
ListBox2.Items.Strings[<index>] := Edit.Text;
|
Re: Listbox Item überschreiben
@mkinzler: danke für deine Antwort. Joa, dass hab ich schon so drinne
Zitat:
Wenn ich das wie oben verwendet, wird der geänderte Eintrag an die erste Zeile geschrieben. Aber ich möchte ja den ausgewählten Eintrag, der ja vielleicht auch in der 10. Zeile steht überschreiben. Ich muss sagen, dass ich erst seit ein paar Tagen mit Delphi "experimentiere"... :oops: Also kann mir jemand nen Tipp geben, wie ich an den richtigen Index komme? Liebe Grüße Steffi PS: Hier nochmal die wichtigen Codeteile:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var F:TextFile; s:string; begin if OpenDialog1.Execute then begin ListBox1.Clear; AssignFile(F, OpenDialog1.FileName); try Reset(F); except ShowMessage('Datei konnte nicht geöffnet werden'); exit; end; if IOResult <> 0 then exit; while not EoF(F) do begin ReadLn(F,s); ListBox1.Items.Add(s); end; CloseFile(F); end; end; procedure TForm1.ListBox1Click(Sender: TObject); var i: Integer; begin for i := 0 to ListBox1.Items.Count -1 do begin if ListBox1.Selected[i] then Edit1.text := ListBox2.Items.Strings[i]; end; end; procedure TForm1.Button3Click(Sender: TObject); var F:TextFile; s: string; begin if OpenDialog2.Execute then begin ListBox2.Clear; AssignFile(F, OpenDialog2.FileName); try Reset(F); except ShowMessage('Datei konnte nicht geöffnet werden'); exit; end; if IOResult <> 0 then exit; while not EoF(F) do begin ReadLn(F,s); ListBox2.Items.Add(s); end; CloseFile(F); end; end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin ListBox2.Items.Strings[i] := Edit1.Text; ListBox2.Update; end; |
Re: Listbox Item überschreiben
Hallo,
meinst du etwa ListBox2.ItemIndex?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var SList: TStringList; Datei: AnsiString; begin Datei:= 'C:\meineDatei.txt'; if FileExists(Datei) then begin SList:= TStringList.Create; try SList.LoadFromFile(Datei); if ListBox2.ItemIndex >= 0 then begin SList.Strings[ListBox2.ItemIndex]:= Edit1.Text; SList.SaveToFile(Datei); end; finally SList.Free; end; end; end; |
Re: Listbox Item überschreiben
Zitat:
|
Re: Listbox Item überschreiben
Entschuldigt bitte, wenn ich mich so doof anstelle. Aber jetzt blick ich es wirklich nich mehr... :oops:
Wenn ich das ganze mit ListBox1.ItemIndex zurückschreibe bekomm ich es an das Ende der datei und mit meiner Version von oben an das Ende. Aber ich schaff es nicht mir den Index zu merken und dann beim überschreiben wieder einzusetzen... Kann mir vielleicht nochmal jemand kurz an meinem Beispiel zeigen, wie ich das hinbekommen könnte? Liebe Grüße Steffi |
Re: Listbox Item überschreiben
Zitat:
Delphi-Quellcode:
Soweit war es ja klar ... oder?
procedure TForm1.ListBox1Click(Sender: TObject);
begin If ListBox1.ItemIndex > -1 then Edit1.Text := ListBox2.Items[ListBox1.ItemIndex]; end;
Delphi-Quellcode:
Und anders rum sollte das auch gehen ;)
procedure TForm1.Button1Click(Sender: TObject);
begin If ListBox1.ItemIndex > -1 then ListBox2.Items[ListBox1.ItemIndex] := Edit1.Text; end; |
Re: Listbox Item überschreiben
OHHHHHH MEEEEIIIIN GOOTTTT... :oops: :wall: :oops:
Wie blöde kann man sich den anstellen? Vielen lieben Dank für eure Ausführliche Hilfe... Ihr seid der Hammer :kiss: Liebe Grüße Steffi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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