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

請教有關combobox的問題

缺席
sunnylu
一般會員


發表:12
回覆:24
積分:7
註冊:2002-07-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-21 10:12:48 IP:210.64.xxx.xxx 未訂閱
目前的問題是,我在DBcombobox下拉的時候, 可以看到兩各欄位的值,但是在close up 的時候, 我只要第一各欄位的值,請教要如何做才能達到我要的需求, 謝謝 我沒辦法使用DBLookupCombo,因為這各沒辦法讓user自行輸入 代碼
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-21 10:47:45 IP:61.222.xxx.xxx 未訂閱
不大清楚你的意思,可不可以再說清楚一點?何謂兩個欄位的值及第一個欄位的值?
sunnylu
一般會員


發表:12
回覆:24
積分:7
註冊:2002-07-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-21 11:21:22 IP:210.64.xxx.xxx 未訂閱
不好意思我再重新敘述一下問題, 比如郵遞區號 在DBcombobox的下拉item我在form開啟已經都add了 所以下拉是看到 100 台北市中正區 103 台北市大同區 .... 若是選擇100 台北市中正區,在DBcombobox在closeup的時候, 會把 100 台北市中正區全部帶回來DBcombobox.text中, 可是我只要100(代碼)這樣就好了,有沒有什麼事件可以寫,當closedup的時候, 在DBcombobox只出現代碼。 後來我又說了,DBLookupCombo不適合我用,是因為這各欄位有時候user要自行輸入,不想用下拉選擇的關係
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-21 11:39:00 IP:61.222.xxx.xxx 未訂閱
如果你確定加入到comboBox的Item裡一定都是"100 台北市中正區"這樣的格式的話,可以在closeup的事件裡加以下的程式碼試試看
 
procedure TForm1.DBComboBox1CloseUp(Sender: TObject);
var
  iIndex:Integer;
begin
  iIndex:=DBComboBox1.ItemIndex ;
  if iIndex>-1 then
  begin
    DBComboBox1.ItemIndex:=-1;
    DBComboBox1.Text:=Copy(DBComboBox1.Items.Strings[iIndex],1,3);
  end;
end;
sunnylu
一般會員


發表:12
回覆:24
積分:7
註冊:2002-07-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-21 12:04:25 IP:210.64.xxx.xxx 未訂閱
我把程式加上去之後,closeup之後就變成空白了 不知道是不是因為DBcombobox沒有closeup,這部分是參考下面的程式寫的, http://delphi.ktop.com.tw/loadfile.php?TOPICID=14350750&CC=320950 所以我的程式如下 procedure TDBComboBox.CNCommand(var Message: TWMCommand); begin inherited; case Message.NotifyCode of CBN_CLOSEUP: DoCloseUp(Self); end; end; procedure TDBComboBox.DoCloseUp(Sender: TObject); var iIndex:Integer; begin iIndex:=DBComboBox1.ItemIndex ; if iIndex>-1 then begin DBComboBox1.ItemIndex:=-1; DBComboBox1.Text:=Copy(DBComboBox1.Items.Strings[iIndex],1,3); end; end;
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-21 12:13:55 IP:61.222.xxx.xxx 未訂閱
引言: 我把程式加上去之後,closeup之後就變成空白了
你要不要試著直接改DBComboBox連著的那個DataSet裡面值試試看,我後來發現確實會變白
sunnylu
一般會員


發表:12
回覆:24
積分:7
註冊:2002-07-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-21 12:55:59 IP:210.64.xxx.xxx 未訂閱
引言
引言: 你要不要試著直接改DBComboBox連著的那個DataSet裡面值試試看
一樣還是空白.... 不知道我的dataSet是不是有連接錯誤呢? 先說我的DBcomboBox連到的dataset table a 員工基本資料檔 a.zip_code是郵遞區號代碼 DBcombobox DataSource = 連接table a的dataSource DataField = a.zipcode
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-21 13:38:40 IP:61.222.xxx.xxx 未訂閱
我想你可能要改變方法了,因為不管如何,DBComboBox1的更改,會更新回DataSet裡去.碰到你的這種問題,我都用Woll2Woll的wwDBComboBox元件,他可以允許你顯示的值與實際上顯示的值是不同的.不然的話,就換個元件,像DBRadioGroup,或者自己另外寫code去儲存對照的值....嗯...投降!!
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-21 17:31:13 IP:203.70.xxx.xxx 未訂閱
我想你可能搞錯了一個部分,就是DBcombobox是針對直接連線顯示資料庫的資料,如果你要把100的值回存到資料庫才需要用到這個元件,不然你應該用的是Combobox而不是DBcombobox。因為你用DBcombobox如果沒有作edit的動作,回存回去當然會變成空白。你可以改用Combobox試試看,我相信應該能解決妳的問題。
sunnylu
一般會員


發表:12
回覆:24
積分:7
註冊:2002-07-09

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-22 09:52:40 IP:210.64.xxx.xxx 未訂閱
我就是要把100存回資料庫.... 而且使用Tcombobox也一樣會有這樣的問題, 下拉選擇後會把全部的資料帶回來combobox.text中, 但我只需要選擇後只帶回代碼.... 發表人 - sunnylu 於 2004/04/22 09:55:27
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-04-22 10:53:44 IP:211.23.xxx.xxx 未訂閱
我想可能有點誤會... 你的做法是不是想選擇後,直接把選擇的值直接透過DBcombobox回存到資料庫?如果是,這樣是不可行的,因為這種做法是將原本的資料帶出來修改在回存,但是你應該是用手動ADD資料到Combobox中,經過COPY你要的資料後(100)再回存回去。 也就是說("100 台北市中正區")應該不是資料庫裡的資料,所以不能用DBcombobox,應該要用Combobox,然後在經過COPY你要的資料後,在寫程式碼INSERT OR EDIT 回存回去。 希望這是你要的答案...
sunnylu
一般會員


發表:12
回覆:24
積分:7
註冊:2002-07-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-04-22 16:11:01 IP:210.64.xxx.xxx 未訂閱
不好意思喔... 我還是不太了解你的意思, 後來我的解決方式是還是用DBcombobox, 下拉可以看到代碼跟名稱, 但是在DBcombobox的前面偷偷放了一個TDBEdit 在DBcombobox 的exit中,取dbcombobox.text的前面 代碼部分在指回資料庫這各欄位, 所以在TDBEdit也可以看到代碼, 下拉也可以有代碼跟名稱,只是使用者不知道這是有兩個元件
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-04-23 10:31:32 IP:61.59.xxx.xxx 未訂閱
沒差啦... 反正只要能解決問題就是好方法! 我想我的表達能力是需要加強的...
系統時間:2024-05-17 20:07:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!