Einzelnen Beitrag anzeigen

AlphaBug

Registriert seit: 2. Mär 2004
Ort: hinterm Transistor 246 gleich links
46 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Problem mit Radom ~ Frage

  Alt 23. Jun 2004, 11:33
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]
Delphi 4ever !
  Mit Zitat antworten Zitat