全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1629
推到 Plurk!
推到 Facebook!

為什麼ComboBox的下拉只有一項

尚未結案
tianwei
一般會員


發表:2
回覆:1
積分:0
註冊:2005-10-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-13 19:56:52 IP:218.93.xxx.xxx 未訂閱
各位前輩 我用ComboBox連接一個Users資料檔案中的User欄位,要怎樣才能將 該欄位的全部紀錄都添加到下拉中去 發表人 - tianwei 於 2005/10/13 20:14:05 發表人 - tianwei 於 2005/10/13 20:14:55
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-13 20:28:43 IP:211.76.xxx.xxx 未訂閱
你要在ComboBox屬性欄裡的items裡增加, 或是用ComboBox1->Items->Add()的方式增加 ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
topspeedbuilder
一般會員


發表:10
回覆:20
積分:6
註冊:2004-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-15 01:11:03 IP:211.162.xxx.xxx 未訂閱
小弟順便插個花,如果是從Users資料檔案中提取資料,可以嘗試DBComBox來解決,這樣可能會更好一些。 加入資料的方法為: DBComBox.Item.Add() ________________________________________ <>眾裏尋她千百渡 驀然回首 那人卻在燈火闌珊處
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-15 10:24:48 IP:218.94.xxx.xxx 未訂閱
你可以按照上面两位的方式做,我在这儿总结如下:
var
  Adoquery: TADOQuery;
begin
  Adoquery := TADOQuery.Create(self);
  try
    Adoquery.Connection := ADOConnection1;
    Adoquery.Close;
    Adoquery.SQL.Text := 'select username from userinfo order by username';
    Adoquery.Open;
    ComboBox1.Clear;
    ComboBox1.Style := csDropDownList;
    while not Adoquery.Eof do
    begin
      ComboBox1.Items.Add(Trim(Adoquery.fieldbyname('username').AsString));
      Adoquery.Next;
    end;
    if Adoquery.RecordCount > 0 then ComboBox1.ItemIndex := 0;
  finally
    Adoquery.Free;
  end;
end;
风花雪月 e梦情缘 网络代号:wnhoo or sos_admin 网名:e梦缘 Mail:wnhoo@163.com
tianwei
一般會員


發表:2
回覆:1
積分:0
註冊:2005-10-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-15 12:02:33 IP:218.93.xxx.xxx 未訂閱
sos_admin,您好 感謝您幫我解決這個問題,昨天的時候,我自己也編寫了一段代碼, 我總覺得我存在一定的風險 我的程式是這樣的 var i : integer begin for i = 0 to ADOQuery.RecordCount-1 do begin ComboBox.Items.Add(ADOQuery.FieldByName['User']); ADOQuery.next; end; end; 如果:ADOQuery和ComboBox不在同一個表單裏面,運行的時候 for i = 0 to UsersFrm.ADOQuery.RecordCount-1 do 這句話就會產生錯誤。 請指教
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-15 18:36:20 IP:202.62.xxx.xxx 未訂閱
您好﹗    如果UsersFrm為Auto-create Form的話﹐在ComboBox所在的Form中Uses UsersFrm這個Form就可以了﹐當然需要注意的是UsersFrm中的ADOQuery需要Open﹐那樣在迴圈中ComboBox才可以從ADOQuery中抓取到資料﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-10-17 11:28:10 IP:218.94.xxx.xxx 未訂閱
如果:ADOQuery和ComboBox不在同一個表單裏面,運行的時候 for i = 0 to UsersFrm.ADOQuery.RecordCount-1 do 這句話就會產生錯誤。 ================================================ 是什么错误信息?    可能发生情况,我想你也是如同cashxin2002所说Adoquery没有Open 或者Adoquery 所在form ,在combobox所在form子后create,而造成访问非法。    至于上面给你方法,你可以用在很多类似情况,没有风险 我都用过
系統時間:2024-05-19 19:56:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!