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

動態產生後FORM之後程式發生錯誤

答題得分者是:Justmade
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-13 00:27:48 IP:61.59.xxx.xxx 未訂閱
各位前輩好~ 小弟目前在學習寫MDI的程式,想將之前寫過的程式包進來這支新程式裡 可是發現一個問題,而這個問題在原本的程式程式是沒問題的! 就是,當我動態產生FORM之後會發現原本我的自定程序參數無法傳遞.... 例如: 我有個FORM叫做FORM1而自定的程序是這樣的 if form1.label1.text <>'' then ^^^^^^^^^^^^^ 原本執行應該是無誤的(在原先的程式裡,FORM1為主FORM),但是動態產生之後,每次執行到這個程序的時候便會發生錯誤! 請問這是什麼原因造成的呢? 並,該怎麼解決才能使FOMR1的元件參數傳遞到程序中呢?
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-13 00:29:24 IP:61.59.xxx.xxx 未訂閱
對了,錯誤訊息是 Access violation at address 0050CC46 in module 'project1.txt'.Read of address 00000318 請大家多多幫忙,謝謝!
Justmade
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-13 00:34:00 IP:218.16.xxx.xxx 未訂閱
應是你執行這句是還沒 create Form1 你可在 Project->Options->Form 裡設定成 auto create 或在執行前手動 Create
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-13 00:40:45 IP:61.59.xxx.xxx 未訂閱
版主您好 我的問題就是,我已經create Form1了... 並且那個程序是在form1中執行的~
banson1716
高階會員


發表:55
回覆:182
積分:167
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-13 03:00:54 IP:61.223.xxx.xxx 未訂閱
if form1.label1.text <>'' then ========================== label1改為Caption 看看 if form1.label1.Caption <>'' then
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-13 07:31:26 IP:61.59.xxx.xxx 未訂閱
引言: if form1.label1.text <>'' then ========================== label1改為Caption 看看 if form1.label1.Caption <>'' then
啊...筆誤... 我是label1.caption沒錯.... 可是這不能解決我的問題耶.... 不是語法錯誤....而是原本的程式執行無誤... 改成MDI動態產生之後就發生錯誤...
delphiwww
資深會員


發表:145
回覆:363
積分:368
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-13 08:56:16 IP:202.145.xxx.xxx 未訂閱
假如說label1.Caption是在form1中執行的話 你form1 create時候是用什麼方式 或許不要使用 form1.label1.caption,改成lable1.caption看看
skurama
中階會員


發表:88
回覆:127
積分:73
註冊:2002-07-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-13 09:07:08 IP:61.219.xxx.xxx 未訂閱
你可以參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22374 可能跟我之前的程式有點類似。 明明是用該Form,但還是會Error。 你可以試試 if TForm1(Form1).Label1.Caption = '' then 一般應該是直接下 if Label1.caption = '' then 應該是不用加Form1 或試試 if self.Label1.caption = '' then 這個三方法式式看。 ---------------- 快滿一年程設師, 日日工作寫程式, 每買樂透眼框溼, 望能早成系分師。 ----------------
------
----------------
初出芧房程設師,
左鍵右鼠寫程式,
日扣夜寫眼框溼,
望能早成系分師。
----------------
Justmade
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-13 09:13:42 IP:218.16.xxx.xxx 未訂閱
補充一下以上兩位所說的 : 簡單來說,就是你的TForm1 創建起來時不叫 Form1。 所以 Form1 這個變數在你呼叫 Form1.label1.caption 時確實是沒指向任何 TForm1 的物件所以 Access Violation. 解決方法上面兩位已說得很清楚了。
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-13 22:46:24 IP:61.59.xxx.xxx 未訂閱
謝謝各位高手,小弟已經自行將問題解決了... 原來是我自訂的程序,沒有宣告... 所以在程序內必須使用諸如: form1.label1 將程序加以宣告後,並將 form1.label1 改成 label1 就可以了,謝謝大家!
系統時間:2024-07-03 1:29:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!