Eigentlich müsste der Code klappen,
aber irgendwo ist trotzdem der Hund
begraben. Es kommt irgendsone Zugriffs-
verletzung. Ich hab jetzt aber auch
keine Zeit und Lust, den Fehler zu suchen.
Das können ja andere machen.
Vielleicht gibt es dir ja den entscheidenen
Denkansatz:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
namen: array of string;
benutzt: array of integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
zufallszahl: integer;
schleifenvar: boolean;
begin
schleifenvar:=true;
namen[1]:=‚Roman‘;
namen[2]:=‚Ewert‘;
namen[3]:=‚usw.‘;
namen[4]:='Kalle ';
namen[5]:=‚Pohl‘;
namen[6]:=‚Kurt‘;
namen[7]:=‚Jürgens‘;
namen[8]:=‚Udo‘;
namen[9]:=‚Lindenberg‘;
namen[10]:=‚Heim‘;
namen[11]:=‚Arbeit‘;
namen[12]:=‚Michael‘;
namen[13]:=‚Schumacher‘;
namen[14]:=‚Rudi‘;
namen[15]:='Carell ';
namen[16]:=‚Christoph‘;
namen[17]:=‚Maus‘;
namen[18]:=‚und so fort…‘;
for i:=1 to 18 do
begin
while (schleifenvar) do
begin
randomize;
zufallszahl:=Round(Random(18));
end;
if i=1 then label1.caption:=namen[zufallszahl];
if i=2 then label2.caption:=namen[zufallszahl];
if i=3 then label3.caption:=namen[zufallszahl];
if i=4 then label4.caption:=namen[zufallszahl];
if i=5 then label5.caption:=namen[zufallszahl];
if i=6 then label6.caption:=namen[zufallszahl];
if i=7 then label7.caption:=namen[zufallszahl];
if i=8 then label8.caption:=namen[zufallszahl];
if i=9 then label9.caption:=namen[zufallszahl];
if i=10 then label10.caption:=namen[zufallszahl];
if i=11 then label11.caption:=namen[zufallszahl];
if i=12 then label12.caption:=namen[zufallszahl];;
if i=13 then label13.caption:=namen[zufallszahl];
if i=14 then label14.caption:=namen[zufallszahl];
if i=15 then label15.caption:=namen[zufallszahl];
if i=16 then label16.caption:=namen[zufallszahl];
if i=17 then label17.caption:=namen[zufallszahl];
if i=18 then label18.caption:=namen[zufallszahl];
benutzt[zufallszahl]:=1;
if benutzt[zufallszahl]1 then schleifenvar:=false;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
setlength(benutzt,18);
setlength(namen,18);
for i:=1 to 18 do
begin
benutzt[i]:=0;
end;
end;
end.