Hi aerotech
,
Da der Quellcode ein "
Random" enthält, hoffe ich, dass vorher (
nur) 1 mal "
Randomize" aufgerufen wurde (im FormCreate oder so).
Des weiteren kann "
RecordCount" 0 zurückliefern, wenn die jeweilige Tabelle zu viele Felder (oder Datensätze ?
) enthält.
Aber das eigentliche Problem:
Das "
MoveBy" ändert den Datensatz
relativ zum aktuellen Datensatz !
Da "
RecordCount" aber keine negativen Werte liefert, springt er immer weiter vorwärts, bis (irgendwann) zum letzten Datensatz.
Versuchs mal so:
Delphi-Quellcode:
procedure TForm1.DBText1Click(Sender: TObject);
begin
if TQuizfragen.FieldByName('L1').AsInteger = 1 then
begin
TQuizfragen.First; // <-- Setzt das DataSet auf den 1. Datensatz zurück.
// Jetzt kann er sich den Datensatz aussuchen ...
TQuizfragen.MoveBy(Random(TQuizfragen.RecordCount));
end
else
Showmessage('Diese Antwortmöglichkeit war leider Falsch');
end;
[edit]
war mal wieder zu langsam ...
... aber doppelt hält besser !
[/edit]