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

PDF全螢幕問題一問???

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


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-02-01 10:43:12 IP:59.120.xxx.xxx 訂閱
各位先進好:
小弟有一個關於PDF 全螢幕的問題,小弟的PDF是利用 Adobe 6.0 裡面pdf.ocx
來顯示pdf圖檔,小弟有設定一個button來顯示pdf全螢幕顯示,小弟有試過
this->BorderStylc=bsNone,可是還是沒有動靜,可以請各位大大為我解答嗎
?? 謝謝
------
努力往往是甘苦的!!一起勉勵
nokib2002
一般會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-02-08 12:26:57 IP:59.120.xxx.xxx 訂閱
請各位大大~
幫我解決這問題點,想到快破頭了,
謝謝各位先進們~
------
努力往往是甘苦的!!一起勉勵
tobylin
一般會員


發表:1
回覆:15
積分:18
註冊:2009-12-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-02-09 16:04:37 IP:60.249.xxx.xxx 訂閱
1. 您的 SOURCE ?
2. 你是否考慮.PDF直接打開 ? (Associate an application with a file extension)
===================引 用 nokib2002 文 章===================
各位先進好:
小弟有一個關於PDF 全螢幕的問題,小弟的PDF是利用 Adobe 6.0 裡面pdf.ocx
來顯示pdf圖檔,小弟有設定一個button來顯示pdf全螢幕顯示,小弟有試過
this->BorderStylc=bsNone,可是還是沒有動靜,可以請各位大大為我解答嗎
?? 謝謝
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-02-11 09:32:57 IP:61.219.xxx.xxx 訂閱
Form全螢幕
Form1->BorderStyle = bsNone; //無框線
Form1->WindowState = wsMaximized; //最大化

只是填滿parent
AcroPDF1->Align = alClient; //The control resizes to fill the client area of its parent
nokib2002
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-02-11 13:48:26 IP:59.120.xxx.xxx 訂閱
小弟有把問題用圖來解說
請參考
http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=102156
希望和各大先進一起學習~
===================引 用 senso 文 章===================
Form全螢幕
?Form1->BorderStyle = bsNone; //無框線
?Form1->WindowState = wsMaximized; //最大化

只是填滿parent
AcroPDF1->Align = alClient; //The control resizes to fill the client area of its parent
------
努力往往是甘苦的!!一起勉勵
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-02-11 14:41:49 IP:61.219.xxx.xxx 訂閱
就拉個新的Form2設全螢幕,再放個pdf,(看要不要再放個關閉的button)

全螢幕button點下去,Form2->pdf指定src還是loadfile,然後Form2->ShowModal()

不然就直接ShellExecute開檔案........
nokib2002
一般會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-02-15 12:29:03 IP:59.120.xxx.xxx 訂閱
請問前輩:
我想直接開pdf檔出來,我想設定一個button1來直接開啟我原有的"pdf預覽"中的pdf檔,
我要如何寫,需要OpenDialog1的幫忙嗎?
謝謝~


===================引 用 senso 文 章===================
就拉個新的Form2設全螢幕,再放個pdf,(看要不要再放個關閉的button)

全螢幕button點下去,Form2->pdf指定src還是loadfile,然後Form2->ShowModal()

不然就直接ShellExecute開檔案........
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-02-14 21:32:16, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-02-15 15:24:04 IP:61.219.xxx.xxx 訂閱
原有的"pdf預覽"中的pdf檔
^^^^^^^^^^^^^^^^^^^^^^^^^^

不是已經有AcroPDF1->src可以拿來用嗎(fullfilename)

nokib2002
一般會員


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-02-15 17:42:19 IP:59.120.xxx.xxx 訂閱
前輩你好:
我想你誤會我的意思了,我是己經有pdf1->src來預覽了,
我是想另外用一個button1來直接開啓"pdf軟體"並且是我預覽的df 檔,
謝謝各位先進~

===================引 用 senso 文 章===================
原有的"pdf預覽"中的pdf檔
^^^^^^^^^^^^^^^^^^^^^^^^^^

不是已經有AcroPDF1->src可以拿來用嗎(fullfilename)

------
努力往往是甘苦的!!一起勉勵
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#10 引用回覆 回覆 發表時間:2011-02-16 09:11:09 IP:61.219.xxx.xxx 訂閱
就用ShellExecute阿,參考help

ShellExecute(Application->Handle,"open",AnsiString(AcroPDF1->src).c_str(),"",NULL,SW_SHOWMAXIMIZED);
編輯記錄
senso 重新編輯於 2011-02-15 18:20:58, 註解 無‧
nokib2002
一般會員


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2011-02-18 13:01:38 IP:59.120.xxx.xxx 訂閱
senso先進你好:
怎麼沒有反應??是路徑沒有設定嗎??還是那裡出問題
~謝謝~

[code cpp]

void __fastcall TService_1::Button1Click(TObject *Sender)
{
ShellExecute(Application->Handle,"open",AnsiString(Pdf1->src).c_str(),"",NULL,SW_SHOWMAXIMIZED);
}

請在此區域輸入程式碼
[/code]

===================引 用 senso 文 章===================
就用ShellExecute阿,參考help

ShellExecute(Application->Handle,"open",AnsiString(AcroPDF1->src).c_str(),"",NULL,SW_SHOWMAXIMIZED);
------
努力往往是甘苦的!!一起勉勵
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#12 引用回覆 回覆 發表時間:2011-02-18 16:43:42 IP:61.219.xxx.xxx 訂閱
我執行很正常,有打開阿

你預覽的pdf應該已經載入了吧,ShowMessage(AnsiString(Pdf1->src))看看有沒有
nokib2002
一般會員


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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2011-02-21 07:56:14 IP:59.120.xxx.xxx 訂閱
"有",我有載入了,我載入的程式為:

[code cpp]
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
//得到圖的完整路徑
szFileName = "D:\\Thomas資料\\" szFileName ".pdf";
// 載入圖片
Service_1->Pdf1->src = szFileName;
請在此區域輸入程式碼
[/code]

但是,我用前輩的程式碼,是可以打開pdf程式,但是卻不是我預覽的pdf檔,
簡單來說就是,我選擇的pdf檔圖和打開Adobe程式的pdf不同檔

[code cpp]
void __fastcall TService_1::Button1Click(TObject *Sender)
{
ShellExecute(Application->Handle,"open", AnsiString(Pdf1->src).c_str(),"",NULL,SW_SHOWMAXIMIZED);

ShowMessage(AnsiString(Pdf1->src));
}
請在此區域輸入程式碼

[/code]

Thx's

===================引 用 senso 文 章===================
我執行很正常,有打開阿

你預覽的pdf應該已經載入了吧,ShowMessage(AnsiString(Pdf1->src))看看有沒有

------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-02-21 02:14:19, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#14 引用回覆 回覆 發表時間:2011-02-22 17:48:06 IP:61.219.xxx.xxx 訂閱
沒遇過這種情形,你確定shellexcute和showmessage都不是預覽的檔?
nokib2002
一般會員


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

發送簡訊給我
#15 引用回覆 回覆 發表時間:2011-02-23 14:12:26 IP:59.120.xxx.xxx 訂閱
senso你好
前輩的程式應該沒有問題,我想應該是"路徑"的問題??


http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=102214

===================引 用 senso 文 章===================
沒遇過這種情形,你確定shellexcute和showmessage都不是預覽的檔?
------
努力往往是甘苦的!!一起勉勵
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#16 引用回覆 回覆 發表時間:2011-02-23 16:35:54 IP:61.219.xxx.xxx 訂閱
我無法理解你如何做出

Pdf1預覽是NRW24-CC.pdf
但Pdf1->src是3-輪椅針車.pdf
nokib2002
一般會員


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

發送簡訊給我
#17 引用回覆 回覆 發表時間:2011-02-24 07:57:54 IP:59.120.xxx.xxx 訂閱
Senso你好:
我在想是不是"路徑"的問題?
因為我在抓圖時是利用Service_1->Pdf1->src = szFileName
而我利用shellexecute打開的話是Pdf1->src.
當我按bottion時會找不到圖或是隨機尋找
不知道我這樣的想法對嗎???
以下是我的做法,但是打不開,可能是沒有找到


[code cpp]
AnsiString FileName;
FileName = "Z:\\15裝二課\\裝二文件儲存區\\" FileName ".pdf" ;
ShellExecute(Application->Handle,"open", AnsiString(FileName).c_str(),"",NULL,SW_SHOWMAXIMIZED);
ShowMessage(FileName);
請在此區域輸入程式碼

[/code]


執行結果~
http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102222
===================引 用 senso 文 章===================
我無法理解你如何做出

Pdf1預覽是NRW24-CC.pdf
但Pdf1->src是3-輪椅針車.pdf

------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-02-23 18:18:16, 註解 無‧
nokib2002 重新編輯於 2011-02-23 18:27:57, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#18 引用回覆 回覆 發表時間:2011-02-24 09:14:35 IP:61.219.xxx.xxx 訂閱
Pdf1->src就是Service_1->Pdf1->src阿,不是嗎

Service_1->Pdf1->src = szFileName
設中斷點或showmessage一定是file:// szFileName

但你在按Button1卻showmessage別的檔
Pdf1都載入檔案顯示了,哪有什麼找不到圖或是隨機尋找
nokib2002
一般會員


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

發送簡訊給我
#19 引用回覆 回覆 發表時間:2011-02-24 09:30:22 IP:59.120.xxx.xxx 訂閱
我有修改一下,請前輩看一下,謝謝你的支援!!

===================引 用 senso 文 章===================
Pdf1->src就是Service_1->Pdf1->src阿,不是嗎

Service_1->Pdf1->src = szFileName
設中斷點或showmessage一定是file:// szFileName

但你在按Button1卻showmessage別的檔
Pdf1都載入檔案顯示了,哪有什麼找不到圖或是隨機尋找
------
努力往往是甘苦的!!一起勉勵
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#20 引用回覆 回覆 發表時間:2011-02-24 11:08:57 IP:61.219.xxx.xxx 訂閱
你那code的FileName是NULL,第2行加進去FileName當然沒有名稱

你直接看Pdf1->src看到底是不是你的檔案好不好
指定src到shellexcute之間到底有沒有改過src


檔案直接上傳圖檔就好了,直接插URL進來
nokib2002
一般會員


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

發送簡訊給我
#21 引用回覆 回覆 發表時間:2011-02-24 16:32:31 IP:59.120.xxx.xxx 訂閱
Senso你好:
我有依造你的意思把ShowMessage(Pdf1->src);
我知道只要路徑一樣就會對了
我預覽的pdf檔(原來編號是圖1)但只要按一下button1我預覽的圖變另外的圖檔
(編號為圖2),變圖2後就執行adobe pdf圖2,可是我要的是圖1
好奇怪哦,我快沒信心了

我發現我打開任一有pdf檔的檔案,程式會抓視窗最上層的第一個pdf圖

謝謝~

http://delphi.ktop.com.tw/board.php?cid=31&fid=130&tid=102227
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-02-24 01:39:21, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#22 引用回覆 回覆 發表時間:2011-02-24 17:49:14 IP:61.219.xxx.xxx 訂閱
直接搜尋程式碼看有哪裡會改到Pdf1->src
不然就丟到會員求助程式檔案上傳區,再來看吧


如何在文章中貼圖 ? 請參閱 幫助.
每次發文回文的時候都有這行阿(剛才才發現/自爆)
nokib2002
一般會員


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

發送簡訊給我
#23 引用回覆 回覆 發表時間:2011-02-25 11:29:51 IP:59.120.xxx.xxx 訂閱
如果我重新再連結pdf檔圖,連結直接打開程式,
這樣應該可以吧,但是我的圖的路徑我不知道如何下手
一直出現bug,以下是我的程式

[code cpp]
void __fastcall TService_1::Button1Click(TObject *Sender)
{
// 從選取的Node得知檔名
AnsiString OpenName = ((TTreeView*)Sender)->Selected->Text;
(會bug, 這裡我要怎麼下手還是修改???)

OpenName = "Z:\\15裝二課\\裝二文件儲存區\\" OpenName ".pdf" ;
Service_1->Pdf1->src = OpenName;
ShowMessage(OpenName);

ShellExecute(Application->Handle,"open", AnsiString(OpenName).c_str(),"",NULL,SW_SHOWMAXIMIZED);
}
在此區域輸入程式碼

[/code]

------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-02-24 20:30:38, 註解 無‧
senso
高階會員


發表:5
回覆:126
積分:226
註冊:2003-11-27

發送簡訊給我
#24 引用回覆 回覆 發表時間:2011-02-25 15:18:46 IP:61.219.xxx.xxx 訂閱
Button1Click(TObject *Sender)這裡Sender是Button1不是TreeView1
你應該用AnsiString OpenName = TTreeView1->Selected->Text;

你前面有提到"只要按一下button1我預覽的圖變另外的圖檔"
那就表示你程式有地方重設了src,那不管你怎麼改button,執行pdf和預覽的檔還是會不一樣
請先確認你的TreeView1->Selected->Text和Pdf1->src正不正確,有沒有在其他的地方被改過
nokib2002
一般會員


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

發送簡訊給我
#25 引用回覆 回覆 發表時間:2011-02-26 08:15:56 IP:59.120.xxx.xxx 訂閱

Senso前輩你好:
我解出來了,我造你的意思,從頭到尾檢查一次,我在Button1中有設定一個
onMouseDown的位罝,我把下列程式去除,程式就正常了.謝謝你的協助.

[code cpp]
void __fastcall TService_1::Button1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
TTreeNode* ClickNode = TreeView1->GetNodeAt(X, Y);

TreeView1->Selected=ClickNode;
}
請在此區域輸入程式碼

[/code]
另外我還有一題,我先研究看看,再請教你,謝謝,跟你學太多了,真不好意思~^^
http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=102132
===================引 用 senso 文 章===================
Button1Click(TObject?*Sender)這裡Sender是Button1不是TreeView1
你應該用AnsiString?OpenName?=?TTreeView1->Selected->Text;

你前面有提到"只要按一下button1我預覽的圖變另外的圖檔"
那就表示你程式有地方重設了src,那不管你怎麼改button,執行pdf和預覽的檔還是會不一樣
請先確認你的TreeView1->Selected->Text和Pdf1->src正不正確,有沒有在其他的地方被改過
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2011-02-25 17:18:06, 註解 無‧
nokib2002 重新編輯於 2011-02-25 17:36:40, 註解 無‧
nokib2002 重新編輯於 2011-02-25 17:38:31, 註解 無‧
系統時間:2024-04-25 21:02:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!