Wenn's nicht mehr als 255 Fragen sein sollen, könnte man auch eine Lösung mit einem String basteln.
Das sieht dann so aus:
Stelle 1 = #1
Stelle 2 = #2
etc.
Nach jedem Ziehen wird das gezogene Zeichen aus dem String gelöscht.
beispielsweise so:
Delphi-Quellcode:
const gesamt=40;
anzahl=15;
var liste: string;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
Randomize;
liste:='';
for i:=1 to gesamt do
liste:=liste+chr(i);
end;
procedure TForm1.Button1Click(Sender: TObject);
var p,z:integer;
begin
if length(liste)<=gesamt-anzahl then
begin
showmessage('Fertig!');
exit;
end;
p:=Random(length(liste))+1;
z:=ord(liste[p]);
delete(liste,p,1);
frage(z);
end;
procedure TForm1.frage(z: integer);
begin
ListBox1.Items.Add(IntToStr(z)); // hier sollte natürlich die eigentliche Frage
// mit der Nr. z bearbeitet werden
end;
Zitat:
hatte bisschen Langeweile und hab das ganze mal zu Übungszwecken (und zur Verwirrung) absichtlich bisschen komplexer gelöst *g*
ein sehr hübscher Ansatz! ... *grins*