全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:797
推到 Plurk!
推到 Facebook!

使用 Frame 的 function 問題

缺席
P.D.
版主


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-03-08 00:37:36 IP:118.160.xxx.xxx 未訂閱
請問各位:

我又遭遇一個不解之問題
版本: RadStudio Berlin 10.1 Update 2 Win7開發 Android 7.0
系統: FireMonkey
平台: win32 / 64 程式

我有 MainForm 及 Form2 與一支 TFrame 放在 Form2 上 (那支Frame 就是我之前分享的萬年曆程式!)
我是

MainForm call Form2
Form2 內的 Button Call 這個 Frame1,
因為要啟動一些初始參數值, 所以我在這支 TFrame 上寫了一組 public Function (name initialRun)
由 Form2 Button1 O n C lick 事件中去執行它, 如 Frame1.initialRun
之後我關閉 Form2 (Form2.Close) 要回到MainForm, 就引發錯誤 "Invalid Pointer Operation", 點掉錯誤是可以繼續執行不會當機,
如果我不去執行 InitialRun 的話, 就不會有這個錯誤,
但 xe 也只告知是這個錯誤, 無從查起是何原因,
後來我用一套工具來查, 得到一個比較詳細的錯誤
"Application made attempt to call method of already deleted object $0C856700 OBJECT [?] 28bytes"

接下來我做了一些測試,
如果我把程式放到 Android 上是不會當掉的, 我同時也把這支 TFrame 改用 Vcl 的模組開發在 Vcl Application 上, 同樣的運作也OK, 看來是FireMonkey 在 Win平台有這個問題,
難道是使用 Tframe時, 不能去宣告 public function 讓其他 Form去呼叫嗎? (運作中都正常, 就是一Close 就會引發錯誤)
如果真的這樣的話, 該如何解決呢?
因為 Frame啟動時要設定一些初始值及啟動, 而Tframe 又沒有 O n Active 或 O n Show 的事件可以使用, 所以非得由Form來Call它, 所以暫時還想不出其他辦法可以排除!
系統時間:2024-11-21 20:29:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!