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

DBRadioGroup使用的問題!

缺席
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-27 14:14:22 IP:203.73.xxx.xxx 未訂閱
請問各位前輩高手,我在使用DBRadioGroup時發現有時候在二筆資料所選的item不同時,DBRadioGroup會自動的變為修改狀態,我試過換一個物件如DBLookupComboBox,或是把datasource的autoedit屬性改為false就不會自動變為修改狀態,不知道這是什麼原因,有什麼方法解決嗎? 我是用delphi6,win2000開發的。 請前輩多多幫忙,謝謝。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-27 16:02:50 IP:61.66.xxx.xxx 未訂閱
引言: 請問各位前輩高手,我在使用DBRadioGroup時發現有時候在二筆資料所選的item不同時,DBRadioGroup會自動的變為修改狀態,我試過換一個物件如DBLookupComboBox,或是把datasource的autoedit屬性改為false就不會自動變為修改狀態,不知道這是什麼原因,有什麼方法解決嗎? 我是用delphi6,win2000開發的。 請前輩多多幫忙,謝謝。
1.當 datasource autoedit 為 true時, 只要感知元件(dbxxx)被異動內容, 系 統自動為對table 下 edit 模式, 這就是 auto的功能, 此時你其實無須下 table1.edit 的行為, 所以當你 dbradiogroup或dblookupcombobox異動時, 其實資料都會自動變更 如果你希望能由你控制edit時機, 可以設定所有dbxxx感知元件為readonly, 由button來控制, 按下button後將 readonly:= False 方式啟動各dbxxx 的異動行為 例如:
private
   procedure setfieldenabled(tf:boolean);    implement    procedure TForm1.setfieldenabled(tf: boolean);
begin
    dbradiogroup1.readonly:= not tf;
    dblookupcombobox1.readonly:= not tf;
.....
end;    procedure tform1.button1click(sender:...)
begin
  setfieldenabled(true);
  table1.edit;
end;
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-27 16:23:20 IP:203.73.xxx.xxx 未訂閱
P.D.你好: 很感謝你的回答,不過我好像沒有表達清楚我的問題,所以你的回答好像不是我想問的問題。我的問題是在我使用DBRadioGroup時,有時候在資料模式為瀏覽模式下,只是在程式中有show一些訊息框後再把資料移到上一筆,再show訊息框後就會自動變為修改模式(程式並沒有下edit的指令,也沒有修改這筆資料),但是我若使用DBLookupComboBox就不會這樣,而且這個情形也不是每次都會,所以感到很困惑,不知道您有遇過嗎?或是我有什麼設定沒設了呢? 謝謝您的幫忙。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-28 00:09:18 IP:61.66.xxx.xxx 未訂閱
引言: P.D.你好: 很感謝你的回答,不過我好像沒有表達清楚我的問題,所以你的回答好像不是我想問的問題。我的問題是在我使用DBRadioGroup時,有時候在資料模式為瀏覽模式下,只是在程式中有show一些訊息框後再把資料移到上一筆,再show訊息框後就會自動變為修改模式(程式並沒有下edit的指令,也沒有修改這筆資料),但是我若使用DBLookupComboBox就不會這樣,而且這個情形也不是每次都會,所以感到很困惑,不知道您有遇過嗎?或是我有什麼設定沒設了呢? 謝謝您的幫忙。
這正是如我所說明的, 當 AUTOEDIT為TRUE, 雖然你沒有下EDIT, 而且畫面上是好像瀏覽, 可是只要資料有異動(包含你改變了RADIO的值), 感知元件會知道, 而且自動調為EDIT, 其實你可以做一個測試 晝面拉一個RADIOGROUP, 一個BUTTON BUTTON的內容請這樣寫 Procedure TForm1.Button1Click(Sender:....); begin if Table1.State in [dsEdit, dsInsert] then Showmessage('Data is Modify') end; 然後執行本程式, 開資料庫後去移動記錄, 然後去變更radiogroup, 再點button1, 看看是否message會出來, 如果是則表示Table1已進入edit 而至於你說到不一定每次都會, 依理論值來說上述的行為是正常的, 可能從這裡看不出你的程式出了什麼問題, 但因為我使用delphi5, 可能無法接受你上傳的求助程式來測試, 你再確認看看! dblookupcombobox也是同樣的道理!
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-28 09:48:30 IP:218.16.xxx.xxx 未訂閱
看你的說明,大約是在 Record 移動時(如 next,prev)無論程式使用者都沒改動記錄的任何東西的情況下,記錄都會自動變為 Edit 模式罷。 這應該是該 VCL 元件的 Bug, 在移動記錄時要顯示新一筆資料元件卻誤會了是修改資料所以 AutoEdit 了。 我沒用這個元件,看過一下這元件的碼但未能看出錯出何處,若你可以用 DBDEMOS 來做一個簡單的例來上傳的話可再幫你試試解決。
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-13 19:49:43 IP:203.73.xxx.xxx 未訂閱
Justmade您好:     因為我之前去出差所以拖了這麼久才回應,真是抱歉。     我的問題正是指資料移動時會發生自動變為修改狀態,但是這個問題並不是每台機器都會,而有些機器是程式跑了很久才會發生,所以雖然我寫了一個小例子,但是測了一下並不會發生,而原先的程式因為是公司的不方便上傳,所以還是把這個小程式上傳(http://delphi.ktop.com.tw/topic.php?TOPIC_ID=35669),請您與各位前輩看看會不會發生這個狀況,謝謝。
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-14 13:31:45 IP:218.16.xxx.xxx 未訂閱
我執行過完全沒問題。若在同一電腦你執行你正式的程式有問題但這個範例卻沒問題,真的很可能是你另外的地方出錯,這比較難找,其他人要猜就更難了。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-14 15:42:18 IP:211.78.xxx.xxx 未訂閱
引言: Justmade您好: 因為我之前去出差所以拖了這麼久才回應,真是抱歉。 我的問題正是指資料移動時會發生自動變為修改狀態,但是這個問題並不是每台機器都會,而有些機器是程式跑了很久才會發生,所以雖然我寫了一個小例子,但是測了一下並不會發生,而原先的程式因為是公司的不方便上傳,所以還是把這個小程式上傳(http://delphi.ktop.com.tw/topic.php?TOPIC_ID=35669),請您與各位前輩看看會不會發生這個狀況,謝謝。
嗯! 我也幫你測了n次, 都很正常唷!
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-15 22:09:42 IP:203.204.xxx.xxx 未訂閱
Justmade, P.D.兩位前輩謝謝你們的幫忙,我又自已上傳的程式也真是試不太出來,所以真的覺的麻煩兩位前輩真不好意思。不過我曾把公司的程式也刪到差不多只剩這麼多程式來測,卻仍會發生,唉!真不知道是什麼原因。我想我還是先把程式中的datasource的autoedit屬性設成false擋著先好了。很抱歉浪費兩位前輩的時間幫我測試。最後再一次謝謝兩位前輩的幫忙。
系統時間:2024-10-02 21:30:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!