Hast du auch überall Begin und End vervollständigt? Falls nicht, rattert er sonst durch und nimmt dann eben die letzten Antworten.
(Wenn du das begin/end bei if weglässt, berücksichtigt er genau nur den nächsten Befehl für die Abfrage. Den rest sieht er wieder als normalen Ablauf an, was hier nicht sein sollte)
Delphi-Quellcode:
procedure Frage1(i:longint);
begin
if i = 1 then begin
Form1.Label2.Caption := '"Andere Länder, andere ...?"'; //1. Frage
Form1.Button1.Caption := 'Fritten';
Form1.Button2.Caption := 'Schlitten';
Form1.Button3.Caption := 'Sitten';
Form1.Button4.Caption := 'Oberweiten';end;
if i = 2 then begin
Form1.Label2.Caption := '"Was ist 2+2?"'; //1. Frage
Form1.Button1.Caption := '2';
Form1.Button2.Caption := '3';
Form1.Button3.Caption := '4';
Form1.Button4.Caption := '5'; end;
if i = 3 then begin
Form1.Label2.Caption := '"Blablabla'; //1. Frage
Form1.Button1.Caption := 'Falsch';
Form1.Button2.Caption := 'Falsch';
Form1.Button3.Caption := 'Richtig';
Form1.Button4.Caption := 'Falsch';end;
end;
procedure TForm1.Button5Click(Sender: TObject);
var i:longint;
begin
randomize;
i := random(3)+1;
Button1.Tag := 0;
Button2.Tag := 0;
Button3.Tag := 0;
Button4.Tag := 0;
Frage1(i);
end;