我想在我的Delphi程序中查看(仅)图像文件和一些常用文档(PDF,RTF,TEXT等),我发现了两种方法,
我想知道,有替代方案吗?感谢。
答案 0 :(得分:4)
Windows(如果我没记错的话,自XP以来)使用IExtractImage
界面为缩略图视图中的任何文件生成缩略图,如果它有一个列出其文件类型的对象。
这些对象可以通过代码访问,您可以使用它们为任何在Windows资源管理器中获取缩略图的文件生成缩略图。 (我甚至认为缩略图缓存(Thumbs.db
)将提供缩略图,如果它在您请求的图像尺寸中可用。)
这里还有更多: http://yoy.be/item.asp?i1490 或者在这里: http://msdn.microsoft.com/en-us/library/bb775073(v=vs.85).aspx
答案 1 :(得分:4)
有两种方法可以到这里:
我个人喜欢保留我的来源"所有delphi"。在显示图像时,Delphi拥有许多第三方库,可以为您提供几乎所有可以想象的图像格式的支持。
图片强>
ImageEN是一个很好的包(商业),您可能也喜欢免费的Vapyre图像库(名称有点......好吧,但它是一个很棒的产品)。为了快速添加对最常见格式的支持,GraphicsEX是许多开发人员使用的传统Delphi扩展。你也有FreeImage,它是DLL文件的集合 - 但是使用Delphi包装类使它们易于使用。看一下Torry的Delphi页面上的图形部分(google it),你会发现强有力的支持。
<强> PDF 强>
对于PDF预览/阅读,我会看一下Gnostice的产品系列。它们提供用于生成和查看PDF文件的本机Delphi组件(http://www.gnostice.com/)。或者(对于PDF)我可能会选择Adobe的PDF阅读器附带的ActiveX组件。但是,您必须在启动时检查这些对象是否已注册并可供您的应用程序使用。
所以对于你的&#34;通用观众&#34;我会
<强> HTML 强>
为了查看HTML,您很幸运,因为Delphi拥有自己的原生Web渲染器。它由Steve Baldwin编写,名为THTMLViewer。它已作为开源发布,您将在谷歌项目中找到它。
答案 2 :(得分:2)
我建议您编写自己的查看器TForm,查看要查看的文件,并使用它执行三个(或四个或五个)事件中的一个:
如果是PDF或HTML,请使用嵌入式IE webbrowser加载(来自www.bsalsa.com的TEmbeddedWB优于附带的VCL IE包装器TwebBrowser)。
如果是图像,请将其加载到具有调整大小/缩放/滚动支持的图像查看器控件中。
如果是文本文件或RTF文件,请将其加载到RichEdit中。
如果是OLE类型,您可以在OLE容器视图中查看它。
答案 3 :(得分:0)
嵌入式查看器将显示任何文档 - 但是如果它需要外部查看器,则会在IE外部显示 - 每个文档的TIFF(默认情况下)都显示在图像查看器中。