Delphi Eintrag aus Listbox auf mehrere Edit-Felder teilen

kein pc wissen

Cadet 4th Year
Registriert
Feb. 2008
Beiträge
90
Hallo, Ich habe folgendes Anliegen:

Ich versuche ein Programm zu schreiben, bei dem man Texte aus mehreren Edit Feldern in der Listbox speichert. Das sieht dann so aus, dass nach der Eingabe in 8 Edit-Feldern in der Listbox alle Einträge in einer Reihe sind, aber mit Zeichen wie "|" getrennt sind. Die übergabe von Listboxeinträgen in Editfeldern ist bekannt, aber wie könnte man es hinkriegen, dass die "einfache" Übertragung anhand dieser Zeichen auf 2 - n(hier:n=8) Felder geteilt wird. Leider kenne ich keinen Code dafür und im Internet fand ich auch nicht das richtige. Der Befehl zum eingeben der Daten ist Bekannt:

Edit -> Liste:

listbox1.items.add(wert+'|'+wert ...........);

Liste -> 1 Edit:

edit1.text:=listbox1.items[listbox1.itemindex];

Der schwerpunkt liegt in dem Fall beim 2. Befehl.

Ich freue mich auf Hilfe
 
Mal sehen ob ich das richtg verstanden hab:
Du willst den Inhalt der einen Zeile der Liste auf mehrere Editfenster verteilen?

Der "itemindex" erhält nur für markierte Zeilen einen Wert von ungleich -1.
Wenn deine Liste nur eine Zeile beinhaltet, schreib das ganze doch gleich so:
Code:
ListBox1.Items[0]
Ich bin mir aber noch nicht ganz sicher, ob ich dein Problem richtig verstanden hab :rolleyes:
 
EDIT: Hmm, hab des von dir nochmal durchgelesen, ich glaub ich lieg falsch^^

Also wenn ichs richtig verstanden habe, dann müssen acht Edit-Felder-Werte in eine Liste, dann kommt alles wieder ins erste Edit-Feld?

Weil dann würde ich alle Edit-Felder per Schleife durchgehen:

Code:
procedure Eintragen;
var i : integer;
begin
  for i := 1 to 8 do
    begin
      ListBox1.items.add('edit' + inttostr(i) + '.text');
    end;

end;

natürlich braucht man dafür jetzt nicht extra ne Prozedur, geht auf Button.Click - Ereignis oder so...

und dann ins 1.Edit-Feld alles zurück?

Ah und vorher noch ein Tipp: Lieber eine Liste selber erzeugen die ListBox scheint hier eher unnötig zu sein:
Das hier kommt im type-Teil rein:
Code:
  TListe = class(TList)
    inhalt : string;
  end;
Einfach jetzt nach dem implementation Teil, das einfügen:
Code:
 var Liste : TListe
Dann das Form.OnShow-Ereignis verwenden um diese Liste zu erzeugen und in dem Ereignis dies einfügen:
Code:
 Liste := TListe.Create

Okay, dann alles wie gehabt nur:
Code:
procedure Eintragen;
var i : integer;
begin
  for i := 1 to 8 do
    begin
      Liste.add('edit' + inttostr(i) + '.text');
    end;

end;
Ich hoffe mal das klappt!
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben