如何动态向DBGRID控件中添加COMBOBOX控件,添加值为库中对应表的字段值

解决方案 »

  1.   

    你是说在dbgrid里设置下拉框是吗
      

  2.   

    你是说在dbgrid里设置下拉框是吗
    对呀,如何动态添加值哪?当数据库字段值变COMBOBOX值也随着变
      

  3.   

    简单,首先得到当前DBGRID方格的COL ROW值,然后将COMBOBOX显示在该位置,同时读取数据库内相应字段的数据。(记住,先隐藏combobox.visible := false 在显示时将该属性置为true;注意在显示事件之前先combobox.clear一下)
      

  4.   

    楼主是要 把表里的字段动态加到dbgrid的下拉框里吧
      

  5.   

    dbgrid的picklist特性好象可以实现,不用加combobox
      

  6.   

    用dbgrideh里的picklist
    属性
    在form create 属性里加语句
      

  7.   

    dbgrid的每一字段都有picklist属性,效果一样的
      

  8.   

    动态创建combox组件,放置在dbgrid上,combox中的内容在create时添加
    picklist能不能动态的添加数据我就不知道了,好像不能,可以自己试试
      

  9.   

    先在DBGRid中添加字段,然后在formcreate事件中将数据添加进dbgrid1.column[0].picklist具体你试一下。
      

  10.   

    with dbgrid1,data.clientdataset1 do
    begin
    selectedfield:=fieldbyname('zjzl');
    with columns[selectedindex]do
    with picklist do
    begin
    clear;
    if data.clientdataset1.recordcount<>0 then
    begin
    add('selectedfield');
    data.clientdataset1.next;
    end;
    autodropdown:=true;
    end;
    end;
    大家帮我看看这个方法为什么不行呀?我做的是三层结构
      

  11.   

    with dbgrid1,data.clientdataset1 do
    begin
    selectedfield:=fieldbyname('zjzl').asstring;//selectedfield是string类型
    with columns[selectedindex]do
    with picklist do
    begin
    clear;
    if data.clientdataset1.recordcount<>0 then
    begin
    add(selectedfield);   //这里大概没有引号
    data.clientdataset1.next;
    end;
    autodropdown:=true;
    end;
    end;
    还有你这是一个循环吧
      

  12.   

    var
     selectedfield,slxmc:string;
     begin
     with rzdbgrid1,data.clientdataset1 do
    begin
     active:=false;close;
     commandtext:='select * from zjzl';
     open;
    // fieldbyname('lxmc').AsString:=selectedfield;
    selectedfield:=fieldbyname('lxmc');//selectedfield&Ecirc;&Ccedil;string&Agrave;à&ETH;&Iacute;
    with columns[2]do
    with picklist do
    begin
    clear;
    while not eof do
    begin
    slxmc:= fieldbyname('lxmc').value;
    add('slxmc');   
    next;
    end;
    //autodropdown:=true;
    end;
    end;                   
    结果显示:slxmc,slxmc 4 个,其实有四个值为什么不能读库中值为什么?
     end;
      

  13.   

    var
     selectedfield,slxmc:string;
     begin
     with rzdbgrid1,data.clientdataset1 do
    begin
     active:=false;close;
     commandtext:='select * from zjzl';
     open;
    selectedfield:=fieldbyname('lxmc');
    with columns[2]do
    with picklist do
    begin
    clear;
    while not eof do
    begin
    slxmc:= fieldbyname('lxmc').value;
    append(slxmc);   
    next;
    end;
    //autodropdown:=true;
    end;
    end;
    end;
    谢谢我用这个方法解决了