Einzelnen Beitrag anzeigen

Cirrius

Registriert seit: 19. Jan 2005
2 Beiträge
 
#1

aus funktion herraus auf listbox zugreifen

  Alt 27. Mär 2008, 16:19
Hey Leute, mich plagt zur Zeit ein Problem und selbst bin ich mir nicht sicher woran das liegen kann...

Ich habe ein Auswerteprogramm für meinen Verein geschrieben, kurz zur Funktion die mir Sorgen macht:

Durch ein Enter in einer Edit-Box wird mit Hilfe dieser Funktion

Delphi-Quellcode:
procedure Tfrm_main.edt_zeitKeyPress(Sender: TObject; var Key: Char);
var
  minuten : string;
  sekunden : string;
  millisekunden : string;
  fehlersekunden : string;
begin
  if ord(key) = 13 then //Enter Taste
    begin
        begin
          minuten := copy(edt_zeit.Text,1,1);
          sekunden := copy(edt_zeit.Text,2,2);
          millisekunden := copy(edt_zeit.Text,4,2);
          fehlersekunden := copy(edt_zeit.Text,7,2);
          lbox_zeitwert.Items.Strings[lbox_fahrername.ItemIndex] :=
            minuten+'.'+sekunden+'.'+millisekunden+' '+fehlersekunden;
          lbox_fahrername.ItemIndex := lbox_fahrername.ItemIndex+1;
          edt_zeit.Clear;
        end;
    end;
end;
ein Zeitwert in eine Listbox eingetragen.

So, da ich nun die Daten der Listbox auswerten möchte mache ich dies mit folgender Funktion:

Delphi-Quellcode:
procedure zeiteintragen(typ:integer;fahreranzahl:integer);
//Eintragen der Gesamtzeit(mit FS!) und der Fehlersekunden in Array
//Type 1: 1. Lauf, Type 2: 2. Lauf
var
  i : integer;
begin
  case typ of
  1:
    begin
    for i := 1 to fahreranzahl do
      begin
        a_wertung[i,2] := zeitpicker(frm_main.lbox_zeitwert.Items.Strings[i-1]);
        a_wertung[i,5] := copy(frm_main.lbox_zeitwert.Items.Strings[i-1],9,2);
      end;
    end;
  2:
    begin
    for i := 1 to fahreranzahl do
        begin
          a_wertung[i,3] := zeitpicker(frm_main.lbox_zeitwert.Items.Strings[i-1]);
          a_wertung[i,6] := copy(frm_main.lbox_zeitwert.Items.Strings[i-1],9,2);
        end;
    end;
  end;
end;
Nun bekomme ich in der Zeile

a_wertung[i,2] := zeitpicker(frm_main.lbox_zeitwert.Items.Strings[i-1]); Den Fehler, daß der Listenindex das Maximum (0) überschreitet, obwohl sich in der Listbox die Zeitwerte befinden.

Kann es sein sein das ich von einer Funktion heraus nicht ohne weiteres auf die Daten zugreifen kann? Ich bräuchte dringend Hilfe, da ich das Programm in ca. einer Woche bräuchte. Wäre sehr dankbar für jeden Tip.

Sebastian
  Mit Zitat antworten Zitat