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