Einzelnen Beitrag anzeigen

Gurkenmann
(Gast)

n/a Beiträge
 
#1

Ungültige Zeigeroperation beim randomizen von Zahlen.

  Alt 14. Sep 2017, 13:35
Hey, ich bin hier relativ neu, also ich hab noch nicht so viel Erfahrung ^^
Ich hab für die Schule mit einem Kumpel ein Programm erstellt, welches Zahlen mit verschiedenen Algorithmen sortiert.+

Nun habe ich es so gemacht, dass ich ein Edit Feld habe, wo ich die Anzahl an Zahlen eintragen kann, die sortiert werden sollen.
Diese Zahl bestimmt dann die Länge meines Arrays.
Zudem bestimmt die Zahl auch die Länge meines Stringgrids, wo ich die Zahlen reinmachen will.
Da ich aber für jeden Algorithmus mein eigenes Array haben wollte, habe ich dementsprechend viele Arrays.
Ich hoffe man konnte es einiger massen gut nachvollziehen

Hier also mein Code:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
Var
 t,n,j: Integer;
begin
  t:= strtoint(Edit1.Text);
  t:=t-1;

  setlength(ZahlSort, t);

  StringGrid1.RowCount:= strtoInt(Edit1.Text);
  StringGrid2.RowCount:= strtoInt(Edit1.Text);
  StringGrid3.RowCount:= strtoInt(Edit1.Text);
  StringGrid4.RowCount:= strtoInt(Edit1.Text);
  StringGrid5.RowCount:= strtoInt(Edit1.Text);

  SetLength(Zahl1, Length(ZahlSort));
  SetLength(Zahl2, Length(ZahlSort));
  SetLength(Zahl3, Length(ZahlSort));
  SetLength(Zahl4, Length(ZahlSort));
  SetLength(Zahl5, Length(ZahlSort));

   StringGrid6.Cells[0,0] := 'Bubblesort';
   StringGrid6.Cells[0,1] := 'Insetionsort';
   StringGrid6.Cells[0,2] := 'Shellsort';
   StringGrid6.Cells[0,3] := 'Quicksort';
   StringGrid6.Cells[0,4] := 'Selectionsort';


  randomize;
  For n:=0 to strtoint(Edit1.Text) do

  begin
    ZahlSort[n] := random(strtoint(Edit1.Text));
  end;
  Zahl1:=ZahlSort;
  Zahl2:=ZahlSort;
  Zahl3:=ZahlSort;
  Zahl4:=ZahlSort;
  Zahl5:=ZahlSort;

  For j:=0 to strtoint(Edit1.Text) do
    begin
      StringGrid1.Cells[0,j] := inttostr(Zahl1[j]);
      StringGrid2.Cells[0,j] := inttostr(Zahl2[j]);
      StringGrid3.Cells[0,j] := inttostr(Zahl3[j]);
      StringGrid4.Cells[0,j] := inttostr(Zahl4[j]);
      StringGrid5.Cells[0,j] := inttostr(Zahl5[j]);



    end;

end;
Und nun bekomme ich manchmal die Fehlermeldung "ungültige Zeigeroperation".
Waran liegt das?

Ich hoffe ihr könnt mir helfen
  Mit Zitat antworten Zitat