combobox除了存text,还能存value?也就是说我选择的是text,但对应的是value。
用于过滤。
还有,报表实现套打的话,需要把一些固定的控件隐掉,一定要把每个固定控件的visible属性改成false吗?有更加简洁的方法吗?

解决方案 »

  1.   

    combobox好像没有什么value,只有ItemIndex有点用。
    你想让他和javascript里一样吧,这个combobox还真不行。在打印中,我是把那些成批的控件设为数组,这样可以一批设定visible
    的true或false,我也期待更好的方法。
      

  2.   

    delphi中combobox没有value
    可以动态创建,根据条件
      

  3.   

    那如果根据不同的dbgrid每次提取不同的过滤条件的话,要文本和字段对应不是很难,大家是怎么实现的?还有你的方法实现套打,如果都是同一种控件的话那还好,种类多也很烦!
      

  4.   

    我想到一个:创建一个数组去存value,用itemindex来对应,我去试试!
      

  5.   

    不用啦..ComboBox的Items是一个TStrings对象,TStrings对象中的每一项都有2个属性,一个是String,一个是TObject类型的。你可以用ComboBox.Items.AddObject(s:string;o:TObject)方法添加你的ComboBox中的项目,事先把你的Value给转成TObject就成了。取的时候用ComboBox.Items.Objects[Index:Integer]:Tobject,然后转成你Value的类型,ok?算了,给你段代码吧。在窗体上添加ComboBox1一个,Botton1一个,然后..procedure TForm1.Button1Click(Sender: TObject);
    var Pabc:^Integer;
    begin
        new(Pabc);
        Pabc^:=1;
        Combobox1.Items.AddObject('First',TObject(pabc^));
        new(Pabc);
        Pabc^:=2;
        Combobox1.Items.AddObject('No.2',TObject(pabc^));
        new(Pabc);
        Pabc^:=3;
        Combobox1.Items.AddObject('No.3',TObject(pabc^));
    end;procedure TForm1.ComboBox1Click(Sender: TObject);
    var i:integer;
    begin
        i:=Combobox1.ItemIndex;
        showmessage(Combobox1.Items.Strings[i]+'='+inttostr(Integer(Combobox1.Items.Objects[i])));
    end;
    给分吧:-)
      

  6.   

    方法1:
    combobox1,combobox2
    设combobox2.visible:=false
    for i:=0 to ... do
    begin
    combobox1.add('你要的text');
    combobox2.add('你要的值');
    end;
    当combobox2.itemindex:=combobox1.itemindex;
    存盘时存combobox2.text
      

  7.   

    建议另外用一个TSTRINGLIST保存VALUE