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