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

謝謝jackkcg大哥,問題解決了(都是Dbimage作怪),我還有一個問題請教:

答題得分者是:P.D.
zhczm888
一般會員


發表:17
回覆:6
積分:4
註冊:2002-11-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-17 16:04:21 IP:61.142.xxx.xxx 未訂閱
小數數值格式如何在輸入時控制,如我在SQL資料庫定義'單價'欄位形態為decimal,總長度為9,小數位為3,我也在TDdataSet的欄位屬性EdinFormat設為'#####.000'.但仍可輸入大於99999數字,請問大哥如何用Edit、Ebedit、Maskedit進行輸入控制,謝謝!
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-17 16:57:23 IP:61.66.xxx.xxx 未訂閱
引言: 小數數值格式如何在輸入時控制,如我在SQL資料庫定義'單價'欄位形態為decimal,總長度為9,小數位為3,我也在TDdataSet的欄位屬性EdinFormat設為'#####.000'.但仍可輸入大於99999數字,請問大哥如何用Edit、Ebedit、Maskedit進行輸入控制,謝謝!
據我的了解 1.EDIT格式並不提供 EDITMASK功能, 即使你在DATASET中設定EDITMASK仍屬無效 2.數值型態的EDIT, 如果透過 DBEDIT控制時, 並沒有EDITMASK這一項PROPERTY, 只有DISPLAYFORMAT, 所以你要用DBEDIT來控制長度理論上也是無法直接達成 3.MASKEDIT雖然有提供 EDITMASK, 但 MASKEDIT是繼承TEDIT物件, 所以原則上在這裡輸入的任何東西都是屬文字, 因此你指定 EDITMASK:= '#####.000', 理應是可以控制長度, 但應該是 '#####.000;1', 不過要把它與資料庫直接做CONNECT的話, 可能要費一番功夫 提供你兩個方式, 1.如果要使用DB感知元件, 在DBEDIT上設定MAXLENGTH應(可輸入最大長度)可解決你的問題, 在 FIELD上設定在DISPLAYFORMAT似乎會干擾小數部份的進位, 所以我通常不設定(在輸入畫面上), 一般我只在報表時, 為求畫面一致才會用FORMAT功能來表達小數 2.網路上有許多針對DELPHI對數值FORMAT加強的元件, 如果你真的那麼在意這方面的話, 強力建議你去找這些你合用的元件, 本站, 深度歷險或DEVexpress, TurboPower公司都有提供, 找找看!
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-18 15:08:06 IP:61.221.xxx.xxx 未訂閱
再TEdit.KeyPress的事件中加入一行判斷 程式碼如下: if (String(key)='.') then begin TEdit.MaxLength:=Length(TEdit.Text) 4;//因為從0開始算 end; 雖然是笨方法,可是因該可以解你ㄉ困腦喔..^^
------
======================
昏睡~
不昏睡~
不由昏睡~
系統時間:2024-05-14 18:43:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!