![]() |
ListBox einträge ändern
jetzt hab ich abern och eine frage:
ich hab ein paar edits, die die ListBox1 inhalte auslesen und über die man die bestehenden inhalte der ListBox bearbeiten kann und zwar so:
Delphi-Quellcode:
wenn ich nun aber diese procedure im programm aufrufe, passiert nichts! warum?
procedure TForm1.AendernClick(Sender: TObject);
begin try if ListBox1.ItemIndex<>-1 then begin ListBox1.Items.Insert(ListBox1.ItemIndex, Name.Text+' | '+Ansprechpartner.Text+' | '+Strasse.Text+' | '+Ort.Text+' | '+Telefon.Text+' | '+Telefax.Text+' | '+Mobil.Text+' | '+EMail.Text); ListBox1.Items.Delete(ListBox1.ItemIndex); end else ShowMessage ('Es müssen Einträge markiert sein!'); except ShowMessage ('Falsche Eingaben!'); end; end; |
Re: ListBox einträge ändern
Hallo Max,
du fügst eine Zeile an einer bestimmten Stelle ein und löschst sie sofort wieder. Du möchtest aber eigentlich die nachfolgende Zeile löschen. Grüße vom marabu Bei genauem Hinsehen willst du weder Löschen noch Einfügen:
Delphi-Quellcode:
Du möchtest auch keine reservierten Wörter (name) als Komponentennamen verwenden. Außerdem möchtest du auch nicht, dass der Benutzer deines Programms den Button Aendern anklicken kann, wenn kein Item ausgewählt ist.
procedure TForm1.AendernClick(Sender: TObject);
begin with ListBox1 do if ItemIndex < 0 then ShowMessage ('Es muss ein Eintrag markiert sein!') else Items[ItemIndex] := Name.Text +' | ' + Ansprechpartner.Text + ' | ' + Strasse.Text + ' | ' + Ort.Text + ' | ' + Telefon.Text + ' | ' + Telefax.Text + ' | ' + Mobil.Text + ' | ' + EMail.Text; end; |
Re: ListBox einträge ändern
lol ^^ das könnte daranliegen, dass du den eintrag den du mit insert einträgst dannach wieder löschst :wink:
MfG - Ghost007 P.S. Änder das mal wie folgt ab //EDIT:
Delphi-Quellcode:
procedure TForm1.AendernClick(Sender: TObject);
var tmp:integer; begin try if ListBox1.ItemIndex<>-1 then begin tmp:=ListBox1.ItemIndex; ListBox1.Items.Insert(tmp+1, Name.Text+' | '+Ansprechpartner.Text+' | '+Strasse.Text+' | '+Ort.Text+' | '+Telefon.Text+' | '+Telefax.Text+' | '+Mobil.Text+' | '+EMail.Text); ListBox1.Items.Delete(tmp); end else ShowMessage ('Es müssen Einträge markiert sein!'); except ShowMessage ('Falsche Eingaben!'); end; end; |
Re: ListBox einträge ändern
Das geht so auch nicht, Christian.
Wenn Du das Item löscht, ist der ItemIndex weg. Das heißt, Du musst Dir den ItemIndex erst aberspeichern und dann beim Insert den abgespeicherten verwenden.
Delphi-Quellcode:
So z.B. funktioniert das ganze wieder.
var
I: Integer; begin if ListBox1.ItemIndex<>-1 then begin I := ListBox1.ItemIndex; ListBox1.Items.Delete(I);//diese zeile von unten nach oben verschieben ListBox1.Items.Insert(I, 'Simple Test'); end; end; |
Re: ListBox einträge ändern
Zitat:
MfG - Ghost007 |
Re: ListBox einträge ändern
Ja, ich hab auch gerade gesehen. :tongue:
Btw. Max: Ich weiß nicht, was Du vor hast, aber wäre eine TListView für Dein Vorhaben nicht besser geeignet? |
Re: ListBox einträge ändern
Eure Vorschläge zum ändern von oben funktionieren auch ned!!!
Wo finde ich die TListView?? EDIT: ahh ich hab scho gefunden. |
Re: ListBox einträge ändern
Unter Win32 ist die.
Zitat:
|
Re: ListBox einträge ändern
Zitat:
das versteh ich jetzt nicht! Was muss ich jetzt ändern das alles funktioniert? |
Re: ListBox einträge ändern
Naja, erstmal solltest Du uns nochmal den Code zeigen, weil die Vorschläge von Christian und mir funktionieren ohne Probleme.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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 by Thomas Breitkreuz