有一表为“活动类型”,表中有一列为“优先级”,其值有4个:低 一般 高 特高,在数据库中存储为1 2 3 4;要在cxGrid中显示低 一般 高 特高,而不是数字,请问各位这一列的properties属性应该选择哪一种控件,各属性又怎样设置。我用过RadioGroup,但是这样会使列的宽度太大,Check**只有两个值,我想应该用**ComboBox,可是好像都要我另外建一个字典表才行,才4行就建一个表太吧!(有人可能会说建表有一个好处,以后可以让用户动态增减级别,可是如果某列的值已经定了呢,如性别)所以请问各位大虾,该选哪种控件,怎样用?

解决方案 »

  1.   

    用**ComboBox可以,没必要建一张表吗,只需要用内存表就可以实现了
      

  2.   

    你不用建表,列的properties选为combobox,然后在combobox的item上增加"低 一般 高 特高"四项,然后在对应的Dataset的本字段的OnGetText与OnSetText方法里处理.
    OnGetText:
    begin
      case Sender.AsInteger of
      1: Text := '低';
      2: Text := '一般';
      3: Text := '高';
      4: Text := '特高';
      end;
    end;OnSetText:
    var
      iFieldValue: Integer;
    begin
      iFieldValue := ChangeTextToInt(Text);
      Sender.AsInteger := iFieldValue;
    end;function ChangeTextToInt(Text: string): integer;
    begin
      if Text ='低' then result := 1;
      .....
    end;
      

  3.   

    不会吧,这么复杂?我做的这个系统中有很多列都是这样的,不会让我全部多这样改吧!哪位有没有简单一点的方法。顺便说一句,当初Borland公司开发cxGrid时不会连这种情况都没考虑吧,其他旧的ExpressQuantumGrid Suite,比如我在这看到的什么‘dxGrid’(我是新手,一上来就让我用的cxGrid),有没有这种功能?
      

  4.   

    对于这个问题,我希望(希望是好的,但是好像很渺茫!)有这样的控件:这一控件的外观用Combobox的,属性什么的应该和cxGrid 中的RadioGroup相同。如果这样的话,我的这个问题就好解决了。
      

  5.   

    cxGrid中好象可以直接设置,还可以让它用不同的图片显示都可以
    具体在哪设我记不清了,我刚开始用这个空间,看别人这样演示过
    希望有高手能赐教
      

  6.   

    在Delphi窑洞中问出的结果:使用imageComboBox.