为什么程序运行时得到了combobox下的items里的内容,但却不能选择它??
代码如下:还要增加什么吗?
adoconnection1:=Tadoconnection.Create(Self);
 adoconnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\db\机票预定系统.mdb;Persist Security Info=False';
 adoconnection1.LoginPrompt:=false;
 adoquery2:=tadoquery.Create(Self);
 adoquery2.Connection:=adoconnection1;
 adoquery2.Close;
 adoquery2.SQL.Clear;
 adoquery2.SQL.Add('select  distinct 出发城市 from 查询表');
 adoquery2.Open;
 adoquery2.First;
 //combobox2.items.Add('请选择');
 while not adoquery2.eof do begin
 ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);
 adoquery2.Next;
end;

解决方案 »

  1.   

    在属性Style设置里设置成csDropDown
    或加上楼上的这句都可以.
      

  2.   

    combobox2.itemindex := 1;现在全世界都知道您是美女了,拜托不要这么赤裸裸的利用性别优势,ok?不然咱们这些大老爷们可怎么活啊?呵呵
      

  3.   

    照ldyocean(小四)说的只能把第一项放在初始行,但可不可把下拉单中的任何项自由的选到初始行啊?(当程序运行时)
      

  4.   

    combobox2.itemindex := 1;
    這是選中第二行﹐它是從0到items.count-1的﹐即0為第一行﹐1為第二行....
      

  5.   

    什么意思?你想把第几行弄到初试行,就等于几不就完了?另外提醒一下:在while之前建议:combobox2.items.clear;
      

  6.   

    作机票的吧!^_^combobox2.items.clear;......
     ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);
    ......combobox2.itemindex := 0; 
      

  7.   

    我是想在程序运行初始行为'请选择'
    然后下拉单里的可以随便选择,比如:下拉单中有'桂林,南宁,柳州'我可以随便选一个做为combobox的值.再帮帮我,好吗?
      

  8.   

    combobox2.items.clear;
     ComboBox2.Items.add(adoquery2.Fieldbyname('请选择).AsString);
     ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);
    combobox2.itemindex := 0;
      

  9.   

    为什么每次运行程序,进行对下拉单中项进行选择后,combobox的值为空白??
    我想要选择哪项并显示哪项的内容在初始,在程序运行时选择.
      

  10.   

    看不懂你要干什么啊?如果combobox中为空白,你应该考虑一下你是否取出了数据,在ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);这一句之前加一句:showmessage(adoquery2.Fieldbyname('出发城市').AsString);看看弹出的有内容吗?
      

  11.   

    你肯定是在选择事件里写了清楚代码,才导致combobox的值为空了
      

  12.   

    combobox有风格问题,这个也需要注意,第二种风格,也就是不能自己编辑的那种,需要自己指定起初行,可以想上面兄弟说的,combobox2.itemindex := x; 0是第一项
      

  13.   

    http://community.csdn.net/Expert/topic/3145/3145249.xml?temp=.8252832procedure TForm2.ComboBox2Change(Sender: TObject);//change????????<<<<<<<<<<<<>>>>
    var
     adoquery2:TAdoquery;
    begin
    adoquery2:=tadoquery.Create(Self);
     adoquery2.Connection:=adoconnection1;
     adoquery2.Close;
     adoquery2.SQL.Clear;
     adoquery2.SQL.Add('select 出发城市 from 查询表');
     adoquery2.Open;
     adoquery2.First;
     combobox2.Clear;
     while not adoquery2.eof do begin
     ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);
     adoquery2.Next;
    end;
    end;
    帖张照片证明你是美女!
      

  14.   

    我是想在程序运行初始行为'请选择'
    然后下拉单里的可以随便选择,比如:下拉单中有'桂林,南宁,柳州'我可以随便选一个做为combobox的值.再帮帮我,好吗?combobox的style为csDropDownList,表示只能选择不能输入!adoquery2:=tadoquery.Create(Self);
     adoquery2.Connection:=adoconnection1;
     
     adoquery2.Close;
     adoquery2.SQL.Clear;
     adoquery2.SQL.Add('select  distinct 出发城市 from 查询表');
     adoquery2.Open;
     adoquery2.First;
     combobox2.items.Add('请选择'); while not adoquery2.eof do 
    begin
     ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);
     adoquery2.Next;
    end;
      ComboBox2.ItemIndex := ComboBox2.Items.IndexOf('请选择');//加上这个就可以了对不对美女,给分!
      

  15.   

    还是不行啊!
    怎么办啊???
    运行时那个程序时
    比如:
    下拉单中有'桂林,南宁,柳州'我可以随便选一个做为combobox的值.再帮帮我,好吗?
    按以上方法运行时都无法选择!点击下拉单项后,combobox的初始项并为空,好奇怪!
      

  16.   

    什么意思,combobox里一个数据也没有吗?上诉代码写在哪了,formcreate里?
      

  17.   

    当要改变选项时是要在它的change事件中填写代码?
    具体代码怎么写?
      

  18.   

    是啊
    在formcreate里
    combobox有数据,但却不能进行选择,如果选择则初始行会变成空白.
      

  19.   

    终于明白你的意思了,你设置了style为dropdownlist,显示肯定是空的,如果你一定要追求你那种效果(我觉得没意义),这样:
    在你最上面的代码下面加:combobox1.style := csdropdown;
    combobox1.text := '请选择';然后在onkeypress中加入:combobox1.style := csdropdownlist;
      

  20.   

    我没有设置了style为dropdownlist,我的设置还是csdropdown 为什么没人明白我?
    打个比方:
      当你进入一个注册程序,它要你选择性别是男是女,用的是combobox,那怎么实现选择这个功能啊?高手们,拜托了!!!!!
     
      

  21.   

    combobox的style为csDropDownListComboBox2.ItemIndex := ComboBox2.Items.IndexOf('请选择');//只要设置了ItemIndex,
    开始显示的就不会为空!在formcreate里
    combobox有数据,但却不能进行选择,????
    什么意思?下拉能看到点一下不就选了,要得到选择的内容,在ONSELECT事件里取出
    ComboBox2.TEXT就行了
      

  22.   

    你不是要求窗口刚显示的时候combobox的内容为你加入的'请选择'吗?
    csdropdown表示用户可以在combobox输入内容,csDropDownList
    表示只能选泽不能输入,你要哪个?
      

  23.   

    JUSTHELP:我就是要得到选的内容,怎么在ONSELECT事件里取出?
    具体点好吗?
      

  24.   

    我试了下,不写ComboBox2.ItemIndex := ComboBox2.Items.IndexOf('请选择');//
    这句开始就是空白,写了开始显示就是请选择;怎么在ONSELECT事件里取出?
    晕!
    下拉单中有'桂林,南宁,柳州'
    你选南宁的话,在ONSELECT事件里ComboBox2.TEXT就是南宁,
    你要用的话,把ComboBox2.TEXT直接拿来用就可以了,
    比如adoquery2.Fieldbyname('出发城市').AsString := ComboBox2.TEXT;
      

  25.   

    Adoconnection1:=Tadoconnection.Create(Self);
     Adoconnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\db\机票预定系统.mdb;Persist Security Info=False';
     Adoconnection1.LoginPrompt:=false;
     Adoquery2:=tadoquery.Create(Self);
     Adoquery2.Connection:=adoconnection1;
     Adoquery2.Close;
     Adoquery2.SQL.Clear;
     Adoquery2.SQL.Add('select  distinct 出发城市 from 查询表');
     Adoquery2.Open;
     Adoquery2.First; //初始化ComboBox下拉方式
     ComboBox2.Style := csDropDownList;
     //清空需要填充的ComboBox
     ComboBox2.Clear;
     //建立第一个初始值
     ComboBox2.Items.Add('请选择');
     //指定第一个显示内容
     ComboBox2.ItemIndex := 0; //开始对ComboBox赋值
     while not adoquery2.eof do begin
       ComboBox2.Items.add(adoquery2.Fieldbyname('出发城市').AsString);
       Adoquery2.Next;
     end;--------
    另:如果你需要在每次显示该Form时,ComboBox2("出发城市")始终是“请选择”,那么应该在FormShow事件中加上ComboBox2.ItemIndex := 0;至于何时添加数据应该在FormCreate时添加城市数据
      

  26.   

    取数据应该在其他事件发生时再取该值,如在某个按钮发生时直接通过ComboBox2.Text取值就可以了
      

  27.   

    至于选择后取值,应该选用时间OnChange,取值方法ComboBox2.Text
      

  28.   

    使用ComboBox2.ItemIndex := 0;的话需要把SORTED := FALSE;禁用排序!
      

  29.   


    我问的是怎么把选的项显示在combobox的初始行中,这个项是任意的,只要选择了,都可以变为在初始行显示.而不是用ComboBox2.ItemIndex 来初始化的因为是combobox动态得到数据库中的数据,所以只有运行才知道项内容的排列.\
      

  30.   

    最简单的方法就是在TXT里的内容里写入
    ITEMS[I]上的字符串
    嘿嘿。。
    这是最实用的办法了。
      

  31.   

    ComboBox显出来的内容用ComboBox2.text得到 var 
    s:string;
    begin
    s:=commbobox2.text;
    end;
      

  32.   

    我问的是怎么把选的项显示在combobox的初始行中,这个项是任意的,只要选择了,都可以变为在初始行显示你的表达真是理解不了啊!
    combobox就只显示一行只要选择一项,当然显示的就是该项,哪里还有初始行??
      

  33.   

    http://community.csdn.net/Expert/topic/3187/3187882.xml?temp=.3475305天下乌鸦一般黑,,java那边也是一样@@
      

  34.   

    美女!
    你不是选择了Combobox啊,就直接在属性Items 里写你所需要添加的城市名称即可了,然后就可以在Combobox下选择你所要的城市名称.
    不信你试试看哦!