Hallo Alle Zusammen.
Ich habe mir aus der Fülle der Prozeduren die folgende herausgesucht.
Doch es gibt wie immer ein Problem. Wenn ich von 8 Zahlen 8 (in unterschiedlicher Reihenfolge) haben will (z.B 5,2,4,1,8,3,7,6) so hängt sich das Programm weg. Warum?
P.S. Die null darf nicht dabeisein.
Delphi-Quellcode:
procedure tForm1.Mischen;
var i, j, x: integer;
function inarray(number: integer): boolean;
var i : integer;
begin
result := false;
for i := 0 to High(numbers) do begin
if numbers[i] = number then begin
result := true;
Break;
end;
end;
end;
begin
randomize;
SetLength(numbers, 0);
while High(numbers) < 8 do begin//Anzahl Zahlen
x := random(8) + 1;//Wertebereich <--- es muss irgendwo hier was falsch sein, doch ich weis nicht was --->
if inarray(x) = false then begin
j := High(numbers) + 1;
SetLength(numbers, j + 1);
numbers[j] := x;
end;
end;
{Caption := InttoStr(High(numbers));}
ListBox1.Items.Clear;
for i := 1 to High(numbers) do begin
ListBox1.Items.Add(InttoStr(numbers[i]));
end;
end;
[edit=Christian Seehase] Delphi-Tags gesetzt, bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]