Guten Morgen,
Delphi-Quellcode:
procedure TFormle.ButtonnextClick(Sender: TObject);
var
rb: TRadioButton;
begin
if lb.ItemIndex >=0 then
begin
rg.Visible:=true;
Datamodule1.ADOQuery6.SQL.Clear;
Datamodule1.ADOQuery6.SQL.Text:='SELECT Frage, L1, L2, L3 FROM Fragen WHERE Fach = ' +#39+lb.Items.Strings[lb.ItemIndex]+#39 +
' AND Schwierigkeit="1";';
Datamodule1.ADOQuery6.Open;
if Datamodule1.ADOQuery6.Eof then
begin
showmessage('Keine Daten');
end else
begin
//Frage in "Titel"
rg.Caption:= trim(Datamodule1.ADOQuery6.FieldByName('Frage').AsString);
//Antworten in Radiobuttons
rg.Items.Clear;
rg.Items.Add(trim(Datamodule1.ADOQuery6.FieldByName('L1').AsString));
rg.Items.Add(trim(Datamodule1.ADOQuery6.FieldByName('L2').AsString));
rg.Items.Add(trim(Datamodule1.ADOQuery6.FieldByName('L3').AsString));
Datamodule1.ADOQuery6.Next;
end;
end else
begin
application.MessageBox('Auswahlfehler!','Fehler');
end;
so wird etwas dargestellt.
trim - weil bei jedem Feld ein #9 als erstes Zeichen steht.
Warum auch immer.
FieldByName habe ich gewählt - weil es lesbarer ist als die Indexe.
Das Problem das immer nur der erste Datensatz gelesen wird, das wurde ja schon angesprochen.
Grüße
Klaus