Delphiのユニバーサル「ドキュメント/イメージビューア」?
-
14-10-2019 - |
質問
Delphiプログラムで、画像ファイルといくつかの一般的なドキュメント(PDF、RTF、テキストなど)を表示したいと思います。
- 経由 atviewer, 、しかし、ファイルサイズが大きすぎます。
- エンドユーザーのコンピューターに直接インストールされた組み込みインターネットエクスプローラーを介して。
私は疑問に思っています、代替手段はありますか?ありがとう。
解決
ここに行くには2つの方法があります。
- Windowsが提供するソフトウェアを使用します
- ネイティブデルファイコンポーネントに固執します
私は個人的に「すべてのデルファイ」の情報源を維持するのが好きです。画像の表示に関しては、Delphiは、想像できるほぼすべての画像形式のサポートを提供する多くのサードパーティライブラリに恵まれています。
画像
Imageenは優れたパッケージ(コマーシャル)であり、無料のVapyre Imageライブラリ(名前は少し..まあ、それは素晴らしい製品です)も気に入るかもしれません。最も一般的な形式のサポートをすばやく追加するために、GraphicSexは多くの開発者が使用する従来のDelphi拡張機能です。 DLLファイルのコレクションであるFreeImageもありますが、Delphiラッパークラスを使用して使いやすくします。 TorryのDelphiページ(Google IT)のグラフィックスセクションをご覧ください。堅牢なサポートが見つかります。
PDFプレビュー/読書については、Gnosticeの製品ラインをご覧ください。 PDFファイルを生成および表示するためのネイティブDelphiコンポーネントを提供します(http://www.gnostice.com/)。または(PDFの場合)、おそらくAdobeのPDFリーダーと一緒に出荷するActiveXコンポーネントに行くでしょう。ただし、これらのオブジェクトが登録され、スタートアップでアプリケーションが利用可能であることを確認する必要があります。
あなたの「ユニバーサルビューアー」のために私はそうします
- ベースビューアーフォームを作成します(ボタン、StatusBarなどを提供するため)
- ファイルを開くための仮想メソッドを追加します
- これから3つのフォームを決定します。それぞれが異なるメディアタイプを扱っています。したがって、TFRMPDF、TFRMIMAGE、TFRMHTMLを取得します。それぞれで、open()メソッドをオーバーライドします。これにより、メインアプリケーションは各形式の詳細を悩ませる必要はありません。
HTML
HTMLを表示するために、Delphiには独自のネイティブWebレンダラーがあります。 Steve Baldwinによって書かれ、Thtmlviewerと呼ばれています。 OpenSourceとしてリリースされており、Googleプロジェクトで見つけることができます。
他のヒント
Windows(正しく思い出す場合はXPなので)は IExtractImage
ファイルタイプのオブジェクトがリストされている場合、サムネイルビューのファイルのサムネイルを生成するインターフェイス。
これらのオブジェクトはコードでアクセス可能であり、それらを使用して、Windowsエクスプローラーにサムネイルも入手するファイルのサムネイルを生成できます。 (サムネイルはサムネイルキャッシュから提供されると思います(Thumbs.db
)あなたが要求している画像サイズで利用可能である場合。)
ここにもっとあります:http://yoy.be/item.asp?i1490またはここ:http://msdn.microsoft.com/en-us/library/bb775073(v=vs.85).aspx
表示されるファイルを調べ、3つ(または4つまたは5つ)の1つを行う自分の視聴者tformを書くことをお勧めします。
PDF、またはHTMLの場合、埋め込みIE Webbrowser(www.bsalsa.comのTembeddedWBは、含まれているVCL IEラッパーTwebbrowserよりも優れています)をロードします。
画像の場合は、サイズ変更/スケーリング/スクロールサポートを備えた画像ビューアコントロールにロードします。
テキストファイル、またはRTFファイルの場合は、richeditにロードします。
OLEタイプの場合は、OLEコンテナビューで表示できます。
埋め込まれた視聴者にはドキュメントが表示されますが、外部ビューアーを必要とするものの場合、これはIEの外側に表示されます。