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

動態TreeView顯示pdf的問題點???

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


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-07 20:30:48 IP:122.118.xxx.xxx 訂閱
各位大大你好
我有try過,直接用Pdf1->Loadfile("szFileName"),可是還是出現bug,
請問問題是出在那裡,我有點看不懂,我有把bug的畫面照出來,請看一下
檔案,可否為我解答一下 感恩
------
努力往往是甘苦的!!一起勉勵
附加檔案:4cfe28f8c07f6_圖片1.jpg
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-07 21:15:09 IP:183.55.xxx.xxx 未訂閱
Pdf1->Loadfile(szFileName)
取消双引号试试。
另:问题没解决不用开新贴,你可以在原的帖子里将问题一步步解决,自己多试试,别一遇问题就上来问。

===================引 用 nokib2002 文 章===================
各位大大你好
我有try過,直接用Pdf1->Loadfile("szFileName"),可是還是出現bug,
請問問題是出在那裡,我有點看不懂,我有把bug的畫面照出來,請看一下
檔案,可否為我解答一下 感恩
編輯記錄
deity 重新編輯於 2010-12-07 06:17:00, 註解 無‧
nokib2002
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-12-07 23:10:37 IP:122.118.xxx.xxx 訂閱
Deity你好:
我有試把引號去掉,但還是一樣,除了Pdf1->Loadfile(szFileName)
還有另外的funion嗎?上面的寫法一樣還是會出現bug,我是有try
的寫下面的方法可是動態TreeView在子node會抓圖,但不同的node
都只會抓同一張pdf,

[code cpp]
  1. // 判斷是否有Child Nodes, 若有則不觸發事件.
  2. if (((TTreeView*)Sender)->Selected->Count) return;
  3. // 從選取的Node得知檔名
  4. AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
  5. // 得到圖的完整路徑.
  6. szFileName = "D:\\Thomas資料\\ST" szFileName;
  7. // 載入圖片
  8. Service_1->Pdf1->src = Service_1->Opendialog1->FileName;
請在此區域輸入程式碼

[/code]

ps.sorry.因為我有用ppt的檔案上傳我的畫面,故我開新帖,回覆不能夾檔,~
謝謝你的提醒,我以後會多加注意!
------
努力往往是甘苦的!!一起勉勵
nokib2002
一般會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-12-07 23:14:41 IP:122.118.xxx.xxx 訂閱

===================引 用 nokib2002 文 章===================
Deity你好:
我有試把引號去掉,但還是一樣,除了Pdf1->Loadfile(szFileName)
還有另外的funion嗎?上面的寫法一樣還是會出現bug,我是有try
的寫下面的方法可是動態TreeView在子node會抓圖,但不同的node
都只會抓同一張pdf,

[code cpp]
// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑.
szFileName = "D:\\Thomas資料\\ST" szFileName;
Service_1->Pdf1->src = Service_1->Opendialog1->FileName;


請在此區域輸入程式碼

[/code]

ps.sorry.因為我有用ppt的檔案上傳我的畫面,故我開新帖,回覆不能夾檔,~
謝謝你的提醒,我以後會多加注意!
------
努力往往是甘苦的!!一起勉勵
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-12-08 08:32:03 IP:183.55.xxx.xxx 未訂閱
正是因为你用的是 Service_1->Pdf1->src = Service_1->Opendialog1->FileName;
读取的PDF文件仅仅是你openDialog打开的这张PDF。

你得用
Service_1->Pdf1->src =szFileName;

整个代码写在TreeView的onchange事件上,试试。

// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑.
szFileName = "D:\\Thomas資料\\ST" szFileName;
// 看看有没有获取正确的PDF文档路径和文件名
showmessage(
szFileName );
Service_1->Pdf1->src =
szFileName ;

===================引 用 nokib2002 文 章===================
Deity你好:
我有試把引號去掉,但還是一樣,除了Pdf1->Loadfile(szFileName)
還有另外的funion嗎?上面的寫法一樣還是會出現bug,我是有try
的寫下面的方法可是動態TreeView在子node會抓圖,但不同的node
都只會抓同一張pdf,

[code cpp]
// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑.
szFileName = "D:\\Thomas資料\\ST" szFileName;
Service_1->Pdf1->src = Service_1->Opendialog1->FileName;


請在此區域輸入程式碼

[/code]

ps.sorry.因為我有用ppt的檔案上傳我的畫面,故我開新帖,回覆不能夾檔,~
謝謝你的提醒,我以後會多加注意!
nokib2002
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-12-08 14:30:27 IP:59.120.xxx.xxx 訂閱
Deity你好:
我有利用Service_1->Pdf1->src = szFileName; 的方式進行編譯
可以compilier過,可是抓不到圖,我推斷是沒有正確讀取到pdf檔
所以我改用之前Service_1->Pdf1->LoadFile(szFileName); 方式compiler
可是出現bug,內容說明參數型態的不一樣,我有找資料,好像是AnsiString
和WideString型態不一樣而造成的,bug如下,請問我要怎麼強制轉換型態
[C Error] Service.cpp(308): E2034 Cannot convert 'AnsiString' to 'wchar_t *'
[C Error] Service.cpp(308): E2342 Type mismatch in parameter 'fileName' (wanted 'wchar_t *', got 'AnsiString')

另外謝謝你為我解答,我學到很多概念~

[code cpp]
// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑
szFileName = "路徑" szFileName;

ShowMessage(szFileName);
// 載入圖片
Service_1->Pdf1->LoadFile(szFileName);
請在此區域輸入程式碼

[/code]
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2010-12-07 23:34:58, 註解 無‧
nokib2002 重新編輯於 2010-12-07 23:36:06, 註解 無‧
nokib2002 重新編輯於 2010-12-07 23:37:10, 註解 無‧
nokib2002 重新編輯於 2010-12-07 23:57:19, 註解 無‧
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-12-08 19:59:28 IP:183.55.xxx.xxx 未訂閱
showmessage获取到的值正确吗?是不是你PDF档的路径加文件名?
nokib2002
一般會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-12-08 22:07:24 IP:122.118.xxx.xxx 訂閱

Showmessage 的路徑是我原本設定的路徑.路徑是對的~


[code cpp]
void __fastcall TService_1::TreeView1Change(TObject *Sender,
TTreeNode *Node)
{
// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑
szFileName = "路徑" szFileName;
ShowMessage(szFileName);
// 載入圖片
Service_1->Pdf1->src = szFileName; //Service_1->OpenDialog4->FileName;
}
請在此區域輸入程式碼

[/code]

"D:\\Thomas資料\\ST標準工時\\" = 路徑


===================引 用 deity 文 章===================
showmessage获取到的值正确吗?是不是你PDF档的路径加文件名?
------
努力往往是甘苦的!!一起勉勵
編輯記錄
nokib2002 重新編輯於 2010-12-08 17:29:50, 註解 無‧
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2010-12-09 09:15:10 IP:183.55.xxx.xxx 未訂閱

应该让szFileName的值等于"D:\Thomas資料\ST標準工時\***.pdf"才能正确显示出来 。


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

Showmessage 的路徑是我原本設定的路徑.路徑是對的~


[code cpp]
void __fastcall TService_1::TreeView1Change(TObject *Sender,
TTreeNode *Node)
{
// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑
szFileName ="路徑" szFileName;
ShowMessage(szFileName);
// 載入圖片
Service_1->Pdf1->src = szFileName; //Service_1->OpenDialog4->FileName;
}
請在此區域輸入程式碼

[/code]

"D:\\Thomas資料\\ST標準工時\\" = 路徑


===================引 用 deity 文 章===================
showmessage获取到的值正确吗?是不是你PDF档的路径加文件名?
nokib2002
一般會員


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2010-12-09 11:59:37 IP:59.120.xxx.xxx 訂閱

Deity大大你好:
我解出來了,謝謝你的大力協助,真的很謝謝你教我那麼多,
程式主要是要
"D:\\Thomas資料\\ST標準工時\\" szFileName ".pdf"





===================引 用 deity 文 章===================

应该让szFileName的值等于"D:\Thomas資料\ST標準工時\***.pdf"才能正确显示出来 。


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

Showmessage 的路徑是我原本設定的路徑.路徑是對的~


[code cpp]
void __fastcall TService_1::TreeView1Change(TObject *Sender,
TTreeNode *Node)
{
// 判斷是否有Child Nodes, 若有則不觸發事件.
if (((TTreeView*)Sender)->Selected->Count) return;
// 從選取的Node得知檔名
AnsiString szFileName = ((TTreeView*)Sender)->Selected->Text;
// 得到圖的完整路徑
szFileName ="路徑" szFileName;
ShowMessage(szFileName);
// 載入圖片
Service_1->Pdf1->src = szFileName; //Service_1->OpenDialog4->FileName;
}
請在此區域輸入程式碼

[/code]

"D:\\Thomas資料\\ST標準工時\\" = 路徑


===================引 用 deity 文 章===================
showmessage获取到的值正确吗?是不是你PDF档的路径加文件名?
------
努力往往是甘苦的!!一起勉勵
系統時間:2024-11-21 22:25:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!