遇到一個pb的技術問題,一直未解決,求pb高人指點,不勝感激,若能完美解決這個問題,可以支付一些費用以當酬謝,問題描述如下:
在我們軟體里需要動態加載住院的床位,實作是在pb9中用 OpenUserObjectWithParm 動態創建一些picturebutton、statictext ,大概有三四十個的樣子,從資料庫回圈讀出來,再動態創建 picturebutton、statictext,并動態指定位置,給st的text加載值,在pb環境下運行很快就可以打開界面,但是編譯后,運行這段代碼就要十多秒時間才可以顯示出界面,到底是為什么啊??有什么解決辦法沒有啊??
uj5u.com熱心網友回復:
沒遇到過建議在代碼里加入寫日志功能,通過讀日志來檢查慢在哪行代碼,再考慮改進
uj5u.com熱心網友回復:
跟蹤過代碼,發現就是動態創建控制元件的時候最花時間,速度瓶頸就在這里,資料庫讀取很快的uj5u.com熱心網友回復:
那就換一種方式來顯示床位。拋棄動態創建物件的方式。uj5u.com熱心網友回復:
系統里有很多這種動態加載的方式,要改恐怕不是一時半伙改得了的,還是想找到原因,我比較奇怪的是pb環境下運行很快,編譯后運行就不行uj5u.com熱心網友回復:
開始先 setredraw(false) 結束再setredraw(true)uj5u.com熱心網友回復:
你的床位是不是還要drag功能,拖動床位后將物件的位置資訊都保存到資料庫表中,然后下次資料視窗初始化化的時候需要重新繪制每個控制元件的位置。如果這樣的話可能就是這個耗時間,你可以寫個函式直接創建資料視窗的語法,然后通過資料視窗字串直接創建資料視窗。uj5u.com熱心網友回復:
這個東東以前弄過,應該是OpenUserObjectWithParm 引起的,給你站內短信,QQ里幫你看看uj5u.com熱心網友回復:
不到窮盡 不用動態轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/26449.html
標籤:數據庫相關
