Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Problem mit ListBox


Projekt Messdaten - Mo 30.09.02 08:54
Titel: Problem mit ListBox
Hallo,
ich hab ein Problem mit einer ListBox. Ich möchte Daten aus einer ListBox in eine andere ListBox laden.


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TMessdaten.DatenClick(Sender: TObject);
var
   Line     : string;
   Position : array [1..1000] of string;
begin
  ListBox0.visible := true;              //ListBox0 sichtbar
  i:=1;                                  //Anfangswert für i ist 1(Zeile 2)
    repeat
      Line := Anzeige.Items[i];          //Zeile i aus Anzeige in Line kopieren
      Position[i] := copy(Line,3,59);    //Spaltenanfang ist 3 und dann 59 Spalten kopieren in Position i
      ListBox0.Items.Add(Position[i]);   //Position i in die ListBox0 schreiben
      i:=i+8;                            //Anfangswert um 8 erhöhen
    until
      i=1000;                            //Endwert von i ist 1000
end;


Dabei tritt aber jedesmal die Meldung auf:

Im Projekt... ist eine Exception der Klasse EStringListError aufgetreten. Meldung:'Der Index der Liste überschreitet das Maximum(249)'...

Ich hab auch schon versucht den i-Wert kleiner zu machen und die Liste nur aus ein paar Zeilen bestehen zu lassen, hatte aber alles keinen Wert.
Hoffentlich kann mir da jemand helfen.
Danke für's lesen

mfg
Daniel


LCS - Mo 30.09.02 09:15

Hi
hab ich das nun so richtig verstanden, dass du aus der Listbox Anzeige jede achte Zeile in ListBox0 übernehmen willst?

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TMessdaten.DatenClick(Sender: TObject); 
var 
  i : integer;
begin 
  i := 1;
  while i < Anzeige.count -1 do begin
    ListBox0.Items.Add(Copy(Anzeige.Items[i], 3, 59));
    i := i + 8;
  end;
end;

Hab das net getestet, sollte aber OK sein.

Gruss Lothar


Projekt Messdaten - Mo 30.09.02 09:25

Danke LCS,
hast du richtig verstanden. Funktioniert einwandfrei. Man muss nur in der Zeile
while i < Anzeige.count -1 do begin
... Anzeige.items.count ... schreiben.

Danke


LCS - Mo 30.09.02 09:47

Hast Recht :D
hätte eigenlicht heissen sollen

Quelltext
1:
while i <= Anzeige.count -1..                    


Gruss Lothar