回答
你并不需要所有的跳转赴汤蹈火你在干什么。 Windows会为您找到与PDF文件关联的应用程序。
procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
Ret: DWord;
begin
s := 'C:\MyFiles\MyFile.pdf';
Ret := ShellExecute(Handle, nil, PChar(s), nil, nil, SW_SHOW);
if Ret < 32 then
ShowMessage(SysErrorMessage(GetLastError));
end;
注:通常你应该从未呼叫而不检查返回值的WinAPI的功能。在这种情况下,您将知道它是否无效,因为PDF无法打开。
错误处理已中断。不能在ShellExecute中使用GetLastError。为了正确报告,请使用ShellExecuteEx。 –
要嵌入PDF,第2个想法浮现在脑海中会
1)搜索,支持PDF文件的COM对象 - 制作一个快速的搜索:http://www.biopdf.com/guide/com_interface.php,但似乎其他。
2)最差的情况下,你可以嵌入具有沿着这些线路的HTML代码中有一个网络面板:
<object data="test.pdf" type="application/pdf" width="500" height="300"> alt : <a href="test.pdf">test.pdf</a> </object>
这两点都可悲地与问题无关。 –
@ArnaudBouchez是不是指OP的第二个问题? –
@RenéHoffmann我永远不会使用HTML面板在应用程序中嵌入pdf。正确的方法是使用ActiveX IMHO,例如作为https://www.youtube.com/watch?v=n8qDdal-6mY –
感谢您的答案,但我最终得到它(几年来一直没有使用德尔福,忘记了用途)。
这就是:“点击按钮后,从目录打开PDF文件。”
uses shellApi;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'C:\pathwaytopdf.pdf', nil, nil, SW_SHOWNORMAL);
end;
end.
谢谢你的答案。
- 1. 德尔福XE8 XML解析
- 2. 我如何加载图像到德尔福XE8的一个apk
- 3. 德尔福XE8奇怪的标题
- 4. 德尔福加载XML
- 5. 德尔福XE8错误阅读从德尔福7版本创建的文本文件,反之亦然
- 6. 德尔福PDF缩略图
- 7. 德尔福PDF格式代
- 8. RestRequest下载文件德尔福XE7
- 9. 德尔福7德尔福XE2 res文件问题
- 10. 德尔福v.Word - 如何从德尔福
- 11. 德尔福HID Delphi7和德尔福XE2
- 12. 德尔福XE2无法加载CnPack
- 13. 德尔福2010 - 无法加载SSL LIB
- 14. Excel加载 - 德尔福equivilent到VB
- 15. 加载图片到图像德尔福
- 16. 德尔福XE8破解异常处理Android
- 17. 隐藏在Android中的键盘德尔福XE8
- 18. 德尔福XE8 TThread在Android上冻结,但在Windows上工作
- 19. 从德尔福XE8服务访问SQL Server 2008 R2
- 20. 德尔福XE8 DataSnap服务器返回并释放T流
- 21. 德尔福XE8:内存泄漏与方法datasnap服务器
- 22. 德尔福2010年应用程序加载一个德尔福7 DLL
- 23. 德尔福7 - >无法加载从资源文件
- 24. 德尔福。 SynEdit - 加载大文件。虚拟模式?
- 25. 德尔福HTTP应用程序时加载文件到流
- 26. 德尔福好的免费PDF库
- 27. 德尔福保存到文本文件
- 28. 德尔福
- 29. 与德尔福
- 30. 与德尔福
不客气! –
你并没有试图做这样的事情。程序不返回值,所以没有* Result *可用。你分配给* s *的是无稽之谈;它与PDF文件的有效名称没有任何关系。以实际编译的形式发布您尝试使用的**实际代码**。此外,这是*问题和答案*网站,而不是*问题*。如果您有多个问题,请创建多个帖子来询问他们,除非他们密切相关。在这种情况下,它们不是,因为其中一个是关于打开一个可以在API中正常工作的PDF,另一个是关于嵌入的,而不是。 –
您是否安装了Adobe Acrobat的完整版本?我问的原因是,如果你这样做,可以使用它的自动化对象来打开PDF文件并将其显示在Delphi应用程序托管的窗口中。如果这就是你想要做的,发布一个新的问题,具体问如何做到这一点。还有其他方法,但只有这个方法才能像Acrobat那样呈现文档。 – MartynA