现有两张表:问题(题干)表a和选项(答案)表b
通过共有字段Link_id连接,相当与主从表
现在题干通过Dbgrid显示,而选项(答案)要动态地在Radiogroup中创建。
实现鼠标双击任意一题干时,在右边的Radiogroup中显示相对应的选项(答案)。

解决方案 »

  1.   

    要2个记录集,第一个记录集直接由DBGrid显示,第二个记录集动态加在RadioGroup中的items中。这2个记录集是主从关系。
      

  2.   

    不用啊,既然已经有连接了,那么就会自动的显示了。
    你可以先在左边隐藏dbgrid,当点击时再显示出来就可以了,
    你没有把问题说明白。
      

  3.   

    procedure Tfrm_shuru.wwDBGrid1DblClick(Sender: TObject);
    //  a_sql= 'select * from Tab_question_dt ';
    var sql:string;
    begin
      inherited;
        Adoquery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add(a_sql);
       ADOQuery1.Open;      sql := sql + ' Link_id = ''' + Dm_wenjuan_shuru.Ads_wenjuan_shuru_dt1Link_id.AsString + '''';
        sql := a_sql + ' where ' +  sql;
         Adoquery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add(sql);
       ADOQuery1.Open;
       wwRadioGroup1.Items.Clear;
        wwRadioGroup1.Items.Add('');
         while not ADOQuery1.Eof do
        begin
           wwRadioGroup1.Items.Add(trim(ADOQuery1.FieldByName('Anwser').AsString));      ADOQuery1.Next;
        end;
      ADOQuery1.Close;end;
      

  4.   

    上面的有点错误
    是:procedure Tfrm_shuru.wwDBGrid1DblClick(Sender: TObject);
    //  a_sql= 'select * from Tab_question_dt ';
    var sql:string;
    begin
      inherited;
          sql := sql + ' Link_id = ''' + Dm_wenjuan_shuru.Ads_wenjuan_shuru_dt1Link_id.AsString + '''';
        sql := a_sql + ' where ' +  sql;
         Adoquery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add(sql);
       ADOQuery1.Open;
       wwRadioGroup1.Items.Clear;
        wwRadioGroup1.Items.Add('');
         while not ADOQuery1.Eof do
        begin
           wwRadioGroup1.Items.Add(trim(ADOQuery1.FieldByName('Anwser').AsString));      ADOQuery1.Next;
        end;
      ADOQuery1.Close;end;
      

  5.   

    上面的代码执行后得到的是:只显示第一个题干的答案选项
    如果把sql改为 sql := sql + ' Link_id like ''%' + Dm_wenjuan_shuru.Ads_wenjuan_shuru_dt1Link_id.AsString + '%''';
        sql := a_sql + ' where ' +  sql;
    代码执行后:将显示所有的题干的答案选项
      

  6.   

    上面的代码执行后得到的是:只显示第一个题干的答案选项
    如果把sql改为 sql := sql + ' Link_id like ''%' + Dm_wenjuan_shuru.Ads_wenjuan_shuru_dt1Link_id.AsString + '%''';
        sql := a_sql + ' where ' +  sql;
    代码执行后:将显示所有的题干的答案选项