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

怎樣才能將放了QuickRep的Form,在Preview時關閉?

尚未結案
guest
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-21 17:58:47 IP:61.56.xxx.xxx 未訂閱
請問要怎樣才能將放了QuickRep的Form,在Preview時關閉? 計試過下列方式皆不成功:  (1)PRTPDCDAYFORM.Close; (2)PRTPDCDAYFORM.QuickRep1.Destroy; (3)PRTPDCDAYFORM.Destroy; (4)TForm(QuickRep1.Parent).Close; 謝謝各位!
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-21 19:54:15 IP:218.170.xxx.xxx 未訂閱
如果在preview就將form關閉,那麼要讓什麼instance來執行preview呢? 或是你可以    
  try
    QuickRep1.PreviewModal;
  finally
    PRTDCDYFORM.free;
  end;    
guest
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-21 23:54:16 IP:219.80.xxx.xxx 未訂閱
感謝hahalin的回應! 其實我主要是希望作到在按下預覽的列印後,程式自動將預覽視窗關閉回到原啟動這個Preview的Form,因此上述的關閉程式碼是寫在『QuickRep1AfterPrint』的事件內,但均無法成功,請問原因何在?
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-22 05:44:50 IP:218.170.xxx.xxx 未訂閱
引言: 感謝hahalin的回應! 其實我主要是希望作到在按下預覽的列印後,程式自動將預覽視窗關閉回到原啟動這個Preview的Form,因此上述的關閉程式碼是寫在『QuickRep1AfterPrint』的事件內,但均無法成功,請問原因何在?
首先: 你似乎沒有了解,你原來的code在preview就將form與form上的quickreport都殺死了,那麼這個preview視窗還能活著呢? 你有想過preview視窗是那個物件提供的嗎? 其次: 最好不要用destory,用free才能把這個component所擁有的物件一併釋放. 詞不達意上一篇post沒能說明清楚還請包涵.
guest
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-22 10:22:49 IP:61.56.xxx.xxx 未訂閱
請問hahalin『將form與form上的quickreport都殺死了』是什麼意思呢? 為方便瞭解我的問題,我將範例程式上傳了,請參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=53580 各位可以發現,執行時在列印後會出現如附圖的錯誤訊息,不知有何方法可解決? 謝謝!
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-22 14:08:01 IP:218.170.xxx.xxx 未訂閱
你把物件destory又要他繼續提供preview的服務 當然會出現 Access violation的錯誤 此問題已明白說明 若仍不明白小弟抱歉解釋不夠詳細 還請高明者協助說明
phil
一般會員


發表:0
回覆:6
積分:1
註冊:2004-07-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-22 14:25:10 IP:61.56.xxx.xxx 未訂閱
hahalin恐怕誤會我的意思了,問題中所列Destroy是指我試過的方法, 您可以下載我上傳的範例看看,我並未使用Destroy,而是您提的Free, 結果仍會出現錯誤訊息,難道QuickRep在預覽的時候一定要手動才能關閉?
phil
一般會員


發表:0
回覆:6
積分:1
註冊:2004-07-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-22 14:42:07 IP:61.56.xxx.xxx 未訂閱
因之前以Phil這個帳號申請時一直收不到系統回寄的密碼確認信, 結果換以Guest申請卻通過了,就以Guest帳號發問; 隔了兩天,Phil帳號的密碼函竟又寄到! 因我習慣Phil這個帳號,所以往後將改用它, 為避免各位疑惑,特此說明,請見諒!
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-07-22 15:14:54 IP:218.165.xxx.xxx 未訂閱
引言: hahalin恐怕誤會我的意思了,問題中所列Destroy是指我試過的方法, 您可以下載我上傳的範例看看,我並未使用Destroy,而是您提的Free, 結果仍會出現錯誤訊息,難道QuickRep在預覽的時候一定要手動才能關閉?
如果這樣你乾脆自己寫一個Privew的Form. http://delphi.ktop.com.tw/topic.php?topic_id=45880 TRY TRY SEE...
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-07-22 17:56:39 IP:218.170.xxx.xxx 未訂閱
   
引言:我並未使用Destroy,而是您提的Free,
也許可以換我問你一個問題, Free跟Destory有什麼不同? 同樣都是釋放物件,請問有什麼不同? 把destory換成free,原來的問題還是存在. p.s.答案已經在我的第二篇回應了 呼叫 chih,delphiwww,fishman,小弟不才,無能解決會員的問題,還請拔刀相助啊...
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-07-22 18:18:36 IP:218.170.xxx.xxx 未訂閱
補充說明好了,QuickRep的AfterPreview事件仍然需要有在記憶體中的執行實體才能運作. 舉個例子來說,有一台戰鬥機發射了一枚麻雀飛彈,發射後需要用雷達波瞄準敵機利用反射的雷達波導引飛彈,如果這台戰機發射後就被擊落了,那麼請問這枚麻雀飛彈是否還能追蹤敵機. 或是以前的布袋戲裡面的金太極,他在跟荒野金刀獨眼龍決鬥的時候,他把刀丟擲出後就萬一不幸被兩齒ㄟ從背後偷襲身亡,那麼他的刀鎖還能收回來嗎? 你的preview視窗是靠QuickRep提供的,在preview還沒釋放前就先釋放QuickRep,戰機都爆炸了那麼飛彈還能有作用嗎?
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-07-22 18:28:50 IP:218.170.xxx.xxx 未訂閱
再補充一下    你可以如同chih所說,自己寫一個preview視窗,然後這個preview視窗用showmodal開啟,在afterprint執行modalresult:=mrok;    假設你的preview視窗的name是fmPv,裡面有個procedure是myPrint; 在呼叫這個Preview視窗這樣寫.
    try
  application.createform(tfmpv,fmpv);
  fmpv.showmodal;
  fmpv.myPrint;
finally
  fmpv.free;
endl    
當fmpv的modalresult為mrok時,就會關閉與釋放.
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-07-22 18:33:54 IP:218.170.xxx.xxx 未訂閱
再補充一下 當fmpv的modalresult有回傳值的時候例如mrok,mrcancel都會關閉,這個例子主要的目的是讓fmpv上的列印程序可以在執行完畢時send一個modalResult的結果給fmpv,讓fmpv關閉與釋放. 如果我有說錯的還請不吝指正.
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-07-22 19:09:51 IP:61.218.xxx.xxx 未訂閱
發表人 - pprayer 於 2004/07/22 19:16:30
phil
一般會員


發表:0
回覆:6
積分:1
註冊:2004-07-20

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-07-23 12:11:15 IP:61.56.xxx.xxx 未訂閱
引言: ---------------------------------------------------------------------- 你的preview視窗是靠QuickRep提供的,在preview還沒釋放前就先釋放QuickRep ---------------------------------------------------------------------- 請問preview要如何釋放呢? 依您所提方式看來,是從原啟動的From去Free掉它開啟的Preview視窗, 我也試過,但結果一樣, 原諒我的才疏學淺,能否請您修改範例程式實作一遍, 也順便嘉惠一下和我遇到同樣問題的其他人? 謝謝您! P.S.感謝pprayer的回應,但您的方法不成功喲.
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#16 引用回覆 回覆 發表時間:2004-07-24 08:54:57 IP:218.170.xxx.xxx 未訂閱
chih提供的那篇post就有做法了 你先參考看看,自己實作一次,有問題再提
phil
一般會員


發表:0
回覆:6
積分:1
註冊:2004-07-20

發送簡訊給我
#17 引用回覆 回覆 發表時間:2004-07-25 10:28:59 IP:219.80.xxx.xxx 未訂閱
chih那篇post的範例是「自製預覽報表」,並沒有「列印後自動關閉預覽視窗」的功能,目前在本討論區似乎沒看到任何有關這種作法的範例?我也實作了很多次,但都不成功,能否請hahalin花幾分鐘示範實作一次?
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#18 引用回覆 回覆 發表時間:2004-07-25 10:50:57 IP:211.20.xxx.xxx 未訂閱
引言: chih那篇post的範例是「自製預覽報表」,並沒有「列印後自動關閉預覽視窗」的功能,目前在本討論區似乎沒看到任何有關這種作法的範例?我也實作了很多次,但都不成功,能否請hahalin花幾分鐘示範實作一次?
釣具已經提供給你了,你有沒有去看過那一篇的程式碼?? 「列印後自動關閉預覽視窗」... 分解動作: 1.列印. 2.關閉Form.. 請自行依照分解動作進行..程式本來就要自己Try出來..不可能所有東西都由別人幫你寫好吧... 我已經TRY過那篇文章..So Don't say it Can't Work...
phil
一般會員


發表:0
回覆:6
積分:1
註冊:2004-07-20

發送簡訊給我
#19 引用回覆 回覆 發表時間:2004-07-25 11:36:18 IP:219.80.xxx.xxx 未訂閱
引言:我已經TRY過那篇文章..So Don't say it Can't Work...
請問是指jeffreck還是Fishman提供的範例? jeffreck提供的我確定沒有「列印後自動關閉預覽視窗」的功能, Fishman提供的似乎少了Variants.dcu,我無法執行確認它的功能. 發表人 - phil 於 2004/07/25 11:40:20
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#20 引用回覆 回覆 發表時間:2004-07-25 11:47:00 IP:211.20.xxx.xxx 未訂閱
Fishman提供的那篇..我用D6開沒有你講的狀況
phil
一般會員


發表:0
回覆:6
積分:1
註冊:2004-07-20

發送簡訊給我
#21 引用回覆 回覆 發表時間:2004-07-25 11:59:24 IP:219.80.xxx.xxx 未訂閱
引言: Fishman提供的那篇..我用D6開沒有你講的狀況
因我現在沒有Delphi6可以測試,想先確認:您是這幾天而且是從2號鏡射主機下載的嗎?(1號鏡射主機目前無法開啟)還是以前下載的?因為我在下載後解開的檔案裏確實沒看到Variants.dcu,而程式中卻有Uses到,謝謝!
懷舊的人
高階會員


發表:28
回覆:152
積分:141
註冊:2003-01-08

發送簡訊給我
#22 引用回覆 回覆 發表時間:2004-07-25 12:28:29 IP:211.78.xxx.xxx 未訂閱
參考看看 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28858
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#23 引用回覆 回覆 發表時間:2004-07-25 14:06:26 IP:218.170.xxx.xxx 未訂閱
delphi5還沒有將variant相關的函式分開為variant一個單元提供引用,因此你用delphi5可以不需引用variant,這些你可以搜尋看看站上的資料,或是翻翻參考書籍也可以. 我說了,你試過那裡有問題你提出來大家討論,單單指定我那有點可惜,站上的高手臥虎藏龍,比小弟高明者比比皆是. 當然沒有所謂的標準答案,寫程式如果都要找現成的那的確可以省下不少時間,問題是,你自己沒有實作過從中學習成長,以後有bug就等著挨打而已. 到此為止,你不提出自己實作的過程哪裡有問題只是要等答案,很抱歉可能的話請站上其他的會員幫忙. 有得罪之處還請包涵,小弟資歷也還淺,也還請站上其他會員先進提供參考意見.
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#24 引用回覆 回覆 發表時間:2004-07-25 19:05:03 IP:218.170.xxx.xxx 未訂閱
此篇主題原發問者已流於情緒性發言,因此主題上鎖特此告知. 順便告知: 本站十大必刪文章 一、重覆發表有灌水之嫌 二、答非所問或描述不清楚 三、抄襲他人文章或發表而未具名引用,或轉載未得原作者同意之文章 四、涉及人身攻擊或不雅文字 五、涉及政治立場 六、索求原始碼、序號、破解、非法下載連結 七、貼錯版區或主題不明確 八、答題內容明顯抄襲或重覆前答題者內容 九、很明顯的作業問題或不將自己寫的有問題的程式片段貼上而要求答案的 十、站務組保留任何對 K.Top 有不良影響文章刪除與會員停權處分的權利 發表人 - hahalin 於 2004/07/25 19:17:04 發表人 - hahalin 於 2004/07/25 19:19:18
系統時間:2024-05-19 21:01:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!