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

BCB直接開啟Word一問??

答題得分者是:aftcast
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-04-15 14:53:44 IP:59.120.xxx.xxx 訂閱

和位先進好:
小弟想利用一個Button1來直接開啟Word檔可是,會發生錯誤,以下
是小弟利用前輩的程式碼來編譯,可以請先進們幫我檢視一下嗎??
謝謝!!

bug的情形如下
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102445

[code cpp]

請在此區域輸入程式碼


void __fastcall TService_1::Button5Click(TObject *Sender)
{
Variant V,D;
if(OpenDialog2->Execute())
{

V = CreateOleObject("Word.Application");
V.OlePropertySet("Visible",true);
OpenDialog2->Execute();
D = V.OlePropertyGet("Documents");
D.OleFunction("Open" , OpenDialog2->FileName.c_str());
}
}[/code]
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-04-17 18:44:42, 註解 無‧
nokib2002 重新編輯於 2011-04-17 18:46:08, 註解 無‧
nokib2002 重新編輯於 2011-04-17 18:47:27, 註解 情形如圖‧
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-04-15 18:06:08 IP:122.126.xxx.xxx 訂閱
我試是ok的, word 2003  
bcb6 編

你是得到什麼錯誤?
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-04-19 07:45:13 IP:59.120.xxx.xxx 訂閱

===================引 用 nokib2002 文 章===================

和位先進好:
?? 小弟想利用一個Button1來直接開啟Word檔可是,會發生錯誤,以下
是小弟利用前輩的程式碼來編譯,可以請先進們幫我檢視一下嗎??
? 謝謝!!

bug的情形如下?
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102445

[code cpp]

請在此區域輸入程式碼


void __fastcall TService_1::Button5Click(TObject *Sender)
{
Variant V,D;
? if(OpenDialog2->Execute())
? {
??
??? V = CreateOleObject("Word.Application");
??? V.OlePropertySet("Visible",true);
??? OpenDialog2->Execute();
??? D = V.OlePropertyGet("Documents");
??? D.OleFunction("Open" , OpenDialog2->FileName.c_str());
? }
}[/code]
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-04-18 17:58:16, 註解 無‧
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-04-19 09:25:02 IP:210.64.xxx.xxx 訂閱
看了一下你的錯誤,似乎是你run後,form也沒出來,button也沒按就掛點了…

我經驗覺得,問題不是在你開word的那段程式,而是別的地方。

建議在
BOM.cpp 裡
中斷這行 : Application->Initialize();
往下追是死在哪個form,比如說死在form1,那就在
__fastcall TForm1::TForm1(TComponent* Owner) 下中斷

以上是run後就出問題,連個button也沒按的情形下去debug的方式。請參考!


------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-04-19 12:29:35 IP:59.120.xxx.xxx 訂閱

aftcast 前輩你好:
我的form 有出現,而是我按buttion1時出現OpenDialog1,都還正常
可是當我選word 時,就會出現這bug...
謝謝前輩的支援~

------
努力往往是甘苦的!!一起勉勵
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-04-19 12:51:18 IP:210.64.xxx.xxx 訂閱
哇咧…

因我測過你寫的程式,我跑是正常的…唯一不同在於

OpenDialog2->Execute();

這句話你在 if 上用了,為何裡面還要用一次? (我是沒有再用一次),是筆誤,還是真的又用了一次?
你的圖也剛好擋住了,看不到那段話。

===================引 用 nokib2002 文 章===================

aftcast 前輩你好:
我的form 有出現,而是我按buttion1時出現OpenDialog1,都還正常
可是當我選word 時,就會出現這bug...
謝謝前輩的支援~

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-04-20 08:43:13 IP:59.120.xxx.xxx 訂閱

===================引 用 aftcast 文 章===================
哇咧…

因我測過你寫的程式,我跑是正常的…唯一不同在於

OpenDialog2->Execute();??

這句話你在 if 上用了,為何裡面還要用一次?? (我是沒有再用一次),是筆誤,還是真的又用了一次?
你的圖也剛好擋住了,看不到那段話。

-------------------------------------------------------------------------------------------
我把OpenDialog2->Execute();前除了,那是筆誤~

這是被擋到的部分,
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102445



------
努力往往是甘苦的!!一起勉勵
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-04-20 15:44:14 IP:59.120.xxx.xxx 訂閱
請問如果沒有用OlePropertySet的方式寫
還有其他方式可以達到我的目的呢?
請各位大大為小弟解一下問題點,謝謝~
------
努力往往是甘苦的!!一起勉勵
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-04-20 16:42:44 IP:210.64.xxx.xxx 訂閱
我試都沒問題,你確認一下你這台電腦裝的是

word 幾版? 還是裝了很多版?

我的情形是 word 2003 版。

此外,試著把CreateObject,改成這樣的寫法 Variant::CreateObject

半猜測的,再試試吧。

===================引 用 nokib2002 文 章===================
請問如果沒有用OlePropertySet的方式寫
還有其他方式可以達到我的目的呢?
請各位大大為小弟解一下問題點,謝謝~
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2011-04-20 02:47:09, 註解 無‧
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#10 引用回覆 回覆 發表時間:2011-04-21 08:19:09 IP:59.120.xxx.xxx 訂閱

===================引 用 aftcast 文 章===================
我試都沒問題,你確認一下你這台電腦裝的是

word 幾版?? 還是裝了很多版??

我的情形是 word 2003 版。

此外,試著把CreateObject,改成這樣的寫法 Variant::CreateObject

半猜測的,再試試吧。

===================引 用 nokib2002 文 章===================
你好:
我的word是2003版的,我也利用新的project來測試,也是沒有問題,
可是在我的主要專案中,就是會跑出bug,想不出來為什麼會如此,
所以想參考其他的寫法,看是否能解決, 謝謝
------
努力往往是甘苦的!!一起勉勵
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2011-04-21 10:09:41 IP:210.64.xxx.xxx 訂閱
看來問題難解了,至少線上討論可能沒什麼結果。最後建議你一招…

開一個新project,然後逐一的把原專案的cpp等加入。每加入新的cpp之前,就compile並run一下會不會出事,若正常,則再加一個cpp,反複的直到找到問題的cpp 或是 完成一個"新的"專案!


===================引 用 nokib2002 文 章===================

可是在我的主要專案中,就是會跑出bug,想不出來為什麼會如此,
所以想參考其他的寫法,看是否能解決, 謝謝
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2011-04-26 08:56:27 IP:59.120.xxx.xxx 訂閱
我有重新再開一個新的project,我利用我的程式也可以打開Word,
可是當我要跨平台時,卻出現vc160.bp1的訊息,我看版上資訊,可利用
linker和Packages中處理完,當然我的vc160.bp1也解決了,可是我再
一次執行我的Word時,卻出現
Access Violation at address 004B6CAF in module 'BOM.exe'.Read of address 00000800

怎麼會這樣???怎麼會有衝突呢???

訊息的情形圖
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102445
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-04-25 19:29:17, 註解 無‧
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#13 引用回覆 回覆 發表時間:2011-04-27 09:13:10 IP:210.64.xxx.xxx 訂閱
你好,
你這問題還真不是很容易線上解決呢!
我認為很有可能是你的project裡或是bcb的安裝第三元件上,有package和原來的那個衝突。
不過,這問題線上恐不好解決。除非你願意把source code給我編看看…
如果你要自己再處理一下,就先確認一下你是否有安裝了第三方元件,而且可能與word,office之類的有關係。
或是你使用了元件盤上的word元件?

用ultraedit之類的可以把project檔打開,然後修改裡面的內容。把不要用package刪除後,再存檔。修改的時候,要記得bcb不能是開著的。


===================引 用 nokib2002 文 章===================
我有重新再開一個新的project,我利用我的程式也可以打開Word,
可是當我要跨平台時,卻出現vc160.bp1的訊息,我看版上資訊,可利用
linker和Packages中處理完,當然我的vc160.bp1也解決了,可是我再
一次執行我的Word時,卻出現
Access Violation at address 004B6CAF in module 'BOM.exe'.Read of address 00000800

怎麼會這樣???怎麼會有衝突呢???

訊息的情形圖
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102445
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#14 引用回覆 回覆 發表時間:2011-04-27 13:50:30 IP:59.120.xxx.xxx 訂閱
你好:
我有發現我是加了pdf.ocx這個二件,才會發生這個問題,我是灌Adobe Acrobat 6.0利用它的元件,來完成顯示的目的,我有測試了,確定是這個元件發生衝突

我的原始碼.
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102489
------
努力往往是甘苦的!!一起勉勵
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#15 引用回覆 回覆 發表時間:2011-04-27 21:19:49 IP:122.126.xxx.xxx 訂閱
嗯,就如我所料的,你有import activex。
但這個 pdf ocx 有不少的問題,我查了國內外都有不少的問題在問,但都沒什麼解答。我指的不完全只要你問的這個,還有其他額外的問題。
而與你有極相似的問題在此
topic.csdn.net/t/20041025/16/3489420.html

但也無解。而我看了那麼多的問題後,我也決定不再去試它的可行性了,因為即使可以load進去,還會有一些什麼變空白,有的沒的問題。
我是建議你換個方式來用。但我對pdf在delphi/bcb上的應用不熟。若有相關熟的人,也許sryang會熟一點,你可以請教它人一下。

但至少知道,我們討論了半天的原因是這個 pdf 在搞鬼…


===================引 用 nokib2002 文 章===================
你好:
我有發現我是加了pdf.ocx這個二件,才會發生這個問題,我是灌Adobe Acrobat 6.0利用它的元件,來完成顯示的目的,我有測試了,確定是這個元件發生衝突

我的原始碼.
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102489
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#16 引用回覆 回覆 發表時間:2011-04-27 23:47:45 IP:122.118.xxx.xxx 訂閱

===================引 用 aftcast 文 章===================
嗯,就如我所料的,你有import activex。
但這個 pdf ocx 有不少的問題,我查了國內外都有不少的問題在問,但都沒什麼解答。我指的不完全只要你問的這個,還有其他額外的問題。
而與你有極相似的問題在此
topic.csdn.net/t/20041025/16/3489420.html

但也無解。而我看了那麼多的問題後,我也決定不再去試它的可行性了,因為即使可以load進去,還會有一些什麼變空白,有的沒的問題。
我是建議你換個方式來用。但我對pdf在delphi/bcb上的應用不熟。若有相關熟的人,也許sryang會熟一點,你可以請教它人一下。

但至少知道,我們討論了半天的原因是這個 pdf 在搞鬼…


謝謝你的支援,不知道現在的pdf.是否有改善問題點,希望有前輩來指導我如何解決這問題,謝謝!
那如果我想直接利用Buttion1來打開視窗,ex.D://1111/222/333/中的所有檔案,也就是說我可以直接打開到333的視窗

------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-04-27 18:00:59, 註解 無‧
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#17 引用回覆 回覆 發表時間:2011-04-28 12:21:07 IP:59.120.xxx.xxx 訂閱
我改用其他的方式來打開了,謝謝各位前輩的支援...
------
努力往往是甘苦的!!一起勉勵
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#18 引用回覆 回覆 發表時間:2011-04-28 12:23:06 IP:210.64.xxx.xxx 訂閱
方便的話,稍分享一下簡單的原理或過程或做法吧?

: -)

===================引 用 nokib2002 文 章===================
我改用其他的方式來打開了,謝謝各位前輩的支援...
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-11-21 21:51:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!