![]() |
aus listbox in edit einschreiben
Liste der Anhänge anzeigen (Anzahl: 1)
hi leute also folgendes problem stellt sich mir gerade: ich schreibe von edits in eine listbox! Um z.b. einen wert zu ändern oder wenn was falsch geschrieben sein sollte, soll aus der listbox wieder in die edits zurückgelesen werden! funktioniert auch irgendwie, aber bei mir wird nur der Name zurückgegeben nicht der vorname mehr! hinterlege euch mal den quellcode und nen screenshot fällt euch vllt ein was da falsch ist?
Delphi-Quellcode:
Vielen dank für eure hilfe
procedure TForm1.Button3Click(Sender: TObject); //Hinzufügen
begin ListBox1.Items.Add( NameEdit.Text+', '+VornameEdit.Text); NameEdit.Text := '' ; VornameEdit.Text := '' ; privatEdit.Text := '' ; mobilEdit.Text := '' ; NameEdit.SetFocus; end; procedure TForm1.Button2Click(Sender: TObject); //Ändern begin if ListBox1.ItemIndex <> -1 then begin ListBox1.Items.Insert(ListBox1.ItemIndex, NameEdit.Text+', '+VornameEdit.Text); ListBox1.Items.Delete(ListBox1.ItemIndex); end else ShowMessage('Es wurde kein Eintrag zum Ändern markiert'); end; procedure TForm1.ListBox1Click(Sender: TObject); var s: string; p: integer; begin if ListBox1.ItemIndex >-1 then begin s := ListBox1.Items[ListBox1.ItemIndex]; p := Pos (',' , s); NameEdit.Text := Copy(s,1,p-1); Delete (s,1,p+1); p := Pos (',',s); VornameEdit.Text := Copy(s,1,p-1); end; end; Bruce86 |
Re: aus listbox in edit einschreiben
Hi,
geht es so besser?
Delphi-Quellcode:
s := ListBox1.Items[ListBox1.ItemIndex];
p := Pos (',' , s); NameEdit.Text := Copy(s,1,p-1); VornameEdit.Text := Copy(s,p+ 1,length(s)- p); |
Re: aus listbox in edit einschreiben
een machteburjer ;)
was sagt denn der Debugger ? der Fehler liegt hie rim Delete.
Delphi-Quellcode:
Das Delete kann eh ganz raus.
s := ListBox1.Items[ListBox1.
p := Pos (',' , s); NameEdit.Text := Copy(s,1,p-1); Delete (s,1,p+1); p := Pos (',',s); VornameEdit.Text := Copy(s,1,p-1); Mit Pos ermittelst du die Positon des Kommas. Das erste Copy (p-1) kopiert bis vor das Komma (also den Namen), das zweite Copy änderst du in Copy(s, p+1, Length(s)); Delete nicht vergessen zu löschen. Generell ist es keine gute Idee, aus dem Komma auf Name/Vorname zu schliessen. Was wenn einer im Editor selbst ein Komma eingibt ??? Ich würde die Daten in einer eigenen Klasse (TList) halten, jede Person erhält eine eigenen Klasseneintrag (TPerson = class) mit seinen Daten. Die Objekte selber könnten in ListBiox.Objects hinterlegt werden oder du nimmst nen TListView (dort gibt es ListIte,Data). Heiko |
Re: aus listbox in edit einschreiben
Der debugger hat ja beben net gemeckert das war ja das problem!
Heiko du hast sicherlich recht dass es mit Klassen besser wäre würde ich ja sonst auch so machen aber wenn der lehrer das net will genauso wie das speichern nicht mit datenbanken geschehen soll was wesentlich einfacher wäre muss man es eben dem anpassen was der lehrer will aber danke für die info! Funktioniert übrigens jetzt! vielen dank!!!! |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Es geht um Delphi. ;) |
Re: aus listbox in edit einschreiben
Hallo,
ein Debugger meckert ja auch nicht, eher der Compiler. Was ich meinte war das zeilenweise Debuggen +watch (F5, Strg+F5, F7, F8). Dann hättest du den Fehler gesehen, Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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