|
在Delphi實際的開發(fā)中發(fā)現(xiàn)的問題
1、TDateTimePicker的錯誤 TDateTimePicker控件在讀寫日期時有很多錯誤,主要是日期不能及時刷新。 隨便舉一個例子: 新建一個Form,然后添加一個TDateTimePicker控件,隨便放一個浮動型按鈕例如TSpeedButton或者TToolButton等,相信這種方式用的會很多! 在浮動按鈕的Click事件中加入很簡單的代碼: ShowMessage(FormatDateTime(‘yyyy-mm-dd‘,DateTimePicker1.Date)); 此時你通過直接修改TDateTimePicker的時間值來修改日期,然后激活浮動按鈕的Click事件,你會發(fā)現(xiàn)在TDateTimePicker中反映出來的日期并不是TDateTimePicker真實的日期!多試幾次你會發(fā)現(xiàn)問題更嚴(yán)重! 相信Borland公司的人應(yīng)該測出了此錯誤,但是沒有修復(fù)! 現(xiàn)在似乎明白為什么沒有日期型的DB控件! 2、TDBGrid的錯誤 如果你是通過TDBGrid直接讀寫數(shù)據(jù),你會發(fā)現(xiàn)問題很致命! 隨便舉一個例子: 新建一個Form,然后添加一個TDBGrid,添加相應(yīng)的數(shù)據(jù)關(guān)聯(lián)然后激活數(shù)據(jù)源,隨便放一個浮動型按鈕,相信這種方式用的也比較多! 在浮動按鈕的Click事件中加入很簡單的代碼: ShowMessage(ADOQuery1.Fields.Fields[0].AsString); 然后運(yùn)行! 運(yùn)行時首先選中TDBGrid中的一條數(shù)據(jù)(已經(jīng)默認(rèn)選中一條),然后滾動鼠標(biāo)的滾輪翻滾數(shù)據(jù),就象大家平時上網(wǎng)是滾動瀏覽網(wǎng)頁或者在Excel數(shù)據(jù)區(qū)滾動瀏覽一樣,然后在TDBGrid中單擊鼠標(biāo),你會發(fā)現(xiàn)此時在TDBGrid中實際控制了兩條數(shù)據(jù),繼續(xù)則可能出現(xiàn)多條! 繼續(xù)下去! 如果你不停的下翻直至TDBGrid中的光標(biāo)在鼠標(biāo)的游標(biāo)之下然后點擊,然后激活浮動按鈕的Click事件,你會發(fā)現(xiàn)在TDBGrid中激活的數(shù)據(jù)與數(shù)據(jù)源中實際的當(dāng)前數(shù)據(jù)根本就不一致! 在實際應(yīng)用中相信會碰到這種情況:我明明選擇是這條數(shù)據(jù),但進(jìn)行后繼操作的為什么不是這條數(shù)據(jù)? 3、TQuickRep的錯誤 TQuickRep歷來以使用簡單,功能靈活(當(dāng)然是通過添加代碼來實現(xiàn))而著名,當(dāng)然她的缺陷之多也同樣有名,這當(dāng)然也不是完全Delphi的問題。 隨便舉一個例子: 系統(tǒng)主窗口是的FormStyle為fsMDIForm類型,系統(tǒng)中的各個窗體采用模式窗體(ShowModal),這是一個很普通的應(yīng)用。 在實際中系統(tǒng)主窗口往往是最大化(WindowState = wsMaximized)的,如果在模式窗體中預(yù)覽報表: QuickRep1.Preview; 如果你把報表預(yù)覽窗口最小化,你會發(fā)現(xiàn)你根本就不能關(guān)閉任何窗口!除非通過Alt+Ctrl+Delete強(qiáng)行關(guān)閉! 所幸QuSoft公司已經(jīng)發(fā)現(xiàn)了這個問題,在專業(yè)版(目前是3.6.2版)解決方案居然是在預(yù)覽窗口默認(rèn)是普通窗口而不是標(biāo)準(zhǔn)版中的將窗體最大化! 4、IDE開發(fā)工具的問題 相信大家至少99%以上是直接通過Delphi提供的IDE工具進(jìn)行開發(fā),在實際應(yīng)用中為了減少EXE文件的大小(主要是因為調(diào)用比較大的第三方控件引起的)往往會通過取消部分VCL連接庫(例如非Delphi自身的*.BPL)來完成,現(xiàn)在發(fā)現(xiàn)在Delphi中幾乎不可能要么全部添加,要么都不添加! 不管你在[Build with runtime packages]中如何設(shè)置都不管用,似乎IDE工具只辨認(rèn)那個Check或者CFG文件中的那個[-LU]參數(shù)而不管其它! 說明:對此目前依然沒有確認(rèn)是IDE工具的問題或者其它問題,只是一般認(rèn)為是IDE工具的問題。 Hank 2002.12.12 作者Blog:http://blog.csdn.net/Hank/
相關(guān)文章
|
|||||||||||||||||||||||||||||||||||
|
|