線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1919
推到 Plurk!
推到 Facebook!

combobox的問題.........

答題得分者是:ha0009
244
一般會員


發表:3
回覆:2
積分:1
註冊:2003-07-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-22 11:28:01 IP:210.70.xxx.xxx 未訂閱
我是一個初學者~ 才剛開始摸索delphi 現在我遇到了問題...... 是有關combobox的問題~ combobox如何讓使用者新增選項?? combobox能把選項的資料匯入資料庫嗎??? 請各位大大幫我忙吧.....>"<
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-22 11:42:32 IP:61.59.xxx.xxx 未訂閱
Hi 244: 不是很了解你的意思, 我猜看看^^ 1. ComboBox1新增選項... 使用 ComboBox1.Items.Add 或 ComboBox1.Items.Insert 建議你查一下TComboBox的Help, 了解一下ComboBox.Items要怎麼使用^^ 2. 可以使用TDBComboBox. 不知道有沒有解決你的問題^_^ 論譠上有相當多文章, 可以多利用查詢的功能, 像說, 你要使用ComboBox, 就可以以ComboBox為Keyword, 會查到相當豐富的資訊的^_^ -------------------------- ~天下本無事 庸人自擾之~
cashxin2002
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-22 13:00:45 IP:63.84.xxx.xxx 未訂閱
補充一下﹕    1﹒新增選項有在設計時期(屬性設定)与執行時期(程式碼設定)兩種時機進行﹐分別如下﹕ A﹒設計時期﹕combobox元件有一個Items屬性﹐其形態為String﹐點擊之會開啟String List Editor對話方框﹐在其中逐行輸入選項名稱即可(將Text屬性中的內容移除﹐若不移除的話﹐Text屬性值也會作為選項之一)﹒ B﹒執行時期﹕如Windyboy所言﹐在程式碼中可以列為ComboBox1.Items.Add. 例﹕在目前的ComboBox1中新增選項﹐選項內容為Edit1的內容﹐程式碼如下﹕ ComboBox1.Items.Add(Edit1.Text);    2﹒ComboBox元件也可用于對應資料庫中資料的編輯﹐只是相比之下需要列入比較多的程式碼來控制﹐使用DBComboBox資料感知元件(在Data Controls元件頁中)比較容易控制﹐也不需要寫程式碼﹐只需要在屬性設定時設定正确即可﹐主要有如下兩個屬性需要設定﹕ DataSource屬性﹕目前連接資料集元件的DataSource名稱﹔ DataField屬性﹕指定此DBComboBox對應資料表中哪一個欄位﹒    如果你還需要有關利用ComboBox元件來編輯資料表中資料的程式碼﹐請參考如下 with Table1 do begin   Try   Table1.Edit; //Table1進入編輯狀態   FieldbyName('姓名').AsString := ComboBox1.Text; //利用ComboBox1的Text屬性值來作為'姓名'欄位的資料內容﹒   Post; //存入資料庫   ShowMessage('修改存檔完成')   Except   ShowMessage('發生錯誤﹐修改存檔未完成');   end; end;     努力,相信會獲得美麗! 忻晟 發表人 -
------
忻晟
244
一般會員


發表:3
回覆:2
積分:1
註冊:2003-07-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-23 14:09:09 IP:210.70.xxx.xxx 未訂閱
with Table1 do begin Try Table1.Edit; //Table1進入編輯狀態 FieldbyName('姓名').AsString := ComboBox1.Text; //利用ComboBox1的Text屬性值來作為'姓名'欄位的資料內容﹒ Post; //存入資料庫 ShowMessage('修改存檔完成') Except ShowMessage('發生錯誤﹐修改存檔未完成'); end; end; 我重新開了一個From 拉了一個Table、Edit、Combobox~ 照著上面的語法~ 不過還是有錯......>"< table裡要建資料嗎???? 我要做的是一個記帳本~~~ 我完全不知道該如何著手.....T_____T
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-23 14:29:23 IP:61.30.xxx.xxx 未訂閱
你好: 1. 描述問題時要盡可能把你遭遇的狀況表達清楚。 2. 當你不清楚錯誤發生原因時,別把系統的錯誤訊息攔截。因為那是判斷錯誤的重要資訊。 3. 如果 Table 是空的,你不能下 Table1.Edit; 因為沒 Record 讓你修改。所以要使用 Table1.Insert 來新增資料。    
   with Table1 do begin
      Try
         //判斷是否空的資料表
         if IsEmpty then
            Insert //Table1進入新增狀態
         else
            Edit; //Table1進入編輯狀態
         FieldbyName('姓名').AsString := ComboBox1.Text; //利用ComboBox1的Text屬性值來作為'姓名'欄位的資料內容﹒
         Post; //存入資料庫
         ShowMessage('修改存檔完成')
      Except
         //攔截錯誤,同時秀出錯誤原因。
         on E: Exception do ShowMessage(format ('發生錯誤﹐修改存檔未完成。錯誤原因:%s', [E.Message]));
      end;
   end;    
希望對你有用 < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-23 15:32:13 IP:61.30.xxx.xxx 未訂閱
你好:
ProjectProject1.exe raised exception class EDatabaseError with message'Table1':
Cannot perform this operation on a closed dataset'.Process stopped.Use Step or 
Run to contnue.
上面的錯誤訊息是說你無法操作已關閉的資料表。
   with Table1 do begin
      Try
         // 判斷資料表是否開啟
         if not Active then Open;
         //判斷是否空的資料表
         if IsEmpty then
            Insert //Table1進入新增狀態
         else
            Edit; //Table1進入編輯狀態
         FieldbyName('姓名').AsString := ComboBox1.Text; //利用ComboBox1的Text屬性值來作為'姓名'欄位的資料內容﹒
         Post; //存入資料庫
         ShowMessage('修改存檔完成')
      Except
         //攔截錯誤,同時秀出錯誤原因。
         on E: Exception do ShowMessage(format ('發生錯誤﹐修改存檔未完成。錯誤原因:%s', [E.Message]));
      end;
   end;
244
一般會員


發表:3
回覆:2
積分:1
註冊:2003-07-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-25 09:25:03 IP:210.70.xxx.xxx 未訂閱
謝謝大家的回答~m(_ _)m 我改使用dbcombobox了~ 也可以用了~~^^ Delphi.......好難~不知該從那裡著手.......><
系統時間:2024-06-27 0:13:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!