先是定义了
CB1:TComboBox;控件然后下拉值有下面三个:
aa   aa1
bb   bb1
cc   cc1现在我想实现的效果是比如我选择aa   aa1 这项后TComboBox先是的是空格前面的字符 aa 而不是显示aa   aa1请问是在哪个地方做这个操作,我在onchange事件中无法实现这个操作!

解决方案 »

  1.   

    补充:Tcombobox的style设置成 csDropDownList
      

  2.   

    不明白为什么会有这个需求,汗。如果ItemIndex和Item是固定的对应关系,你可以试试看这样处理。在OnDropDown里写代码,将Items设置成:
    aa aa1
    bb bb1
    cc cc1然后在OnChange里写代码,将Item设置成:
    aa
    bb
    cc
      

  3.   


    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
      i:Integer;
      s:string;
    begin
      i:=self.ComboBox1.ItemIndex;
      if i=-1 then
        Exit;
      s:=self.ComboBox1.Items.Strings[i];
      if Pos(' ',s)=0 then
        Exit;
      s:=Copy(s,1,2);
      self.ComboBox1.Items.Strings[i]:=s;
      self.Label1.Caption:=s;
      self.ComboBox1.ItemIndex:=i;
    end;procedure TForm1.ComboBox1DropDown(Sender: TObject);
    var
      i:Integer;
      s:string;
    begin
      i:=self.ComboBox1.ItemIndex;
      if i=-1 then
        Exit;
      s:=self.ComboBox1.Items.Strings[i];
      if Pos(' ',s)>0 then
        Exit;
      s:=s+' '+s+'1';
      self.ComboBox1.Items.Strings[i]:=s;
      self.ComboBox1.ItemIndex:=i;
    end;
      

  4.   

    使用cxlookupcombobox可以轻松实现这个效果
      

  5.   

    combox里只显示aa,bb,cc,再另外用一个数组(或者任何其它容器)来存放aa1,bb1,cc1,两者绑定,即建立数据映射关系。简单的做法就用combox的item index与数组的下标相关联。
      

  6.   

    EasyType
      Txxoo=Class(Tobject)
         title:String;
         value:String;
      end;
    .....var
     ls_xxoo:Txxoo;
    ...
     ls_xxoo:=Txxoo.Create;
     ls_xxoo.title:='aa';
     ls_xxoo.value:='aa1';
     cbx_TT.Items.AddObject(ls_xxoo.title,ls_xxoo);
    ....
    在onchange的时候
    看看(cbx_TT.Items.Objects[cbx_TT.ItemIndex] As Txxoo).value是什么?呵呵
      

  7.   

     ls_xxoo:=Txxoo.Create;
     ls_xxoo.title:='aa';
     ls_xxoo.value:='aa1';
     cbx_TT.Items.AddObject(ls_xxoo.title,ls_xxoo);
     ls_xxoo:=Txxoo.Create;
     ls_xxoo.title:='bb';
     ls_xxoo.value:='bb1';
     cbx_TT.Items.AddObject(ls_xxoo.title,ls_xxoo);
     ls_xxoo:=Txxoo.Create;
     ls_xxoo.title:='cc';
     ls_xxoo.value:='cc1';
     cbx_TT.Items.AddObject(ls_xxoo.title,ls_xxoo);
    明白是什么意思了吧,根据你的情况活用吧