2011-01-03 3 views
4

私はDelphiのプログラムで(のみ)画像ファイルといくつかの一般的な文書(PDF、RTF、TEXTなど)を表示したい、私はそれを行うの二つの方法を見つけた、Delphi用のユニバーサル "ドキュメント/イメージビューア"?

  1. AtViewerを経由して、しかし、ファイルサイズが大きすぎます。
  2. エンドユーザーのコンピュータに直接インストールされている組み込みInternet Explorer経由。

私には別の選択肢がありますか?ありがとう。

+0

'TRichEdit'と' TPicture'を組み合わせて使用​​します(一度に1つだけを表示します)? (私はPDFTについて聞いたことがありませんが、おそらくあなたはPDFを参照しています - そして、Adobe ReaderのActiveXコントロールを使うことができます。また、 'TRichEdit'はRTFファイルを開くことができますが、DOC/DOCXファイルはるかに一般的です。) –

+0

こんにちはアンドレアス、アイデアのおかげで。私はPDFを意味します:)混乱のために申し訳ありません。 –

答えて

4

があります。ここに行くには二つの方法:

  1. 使用のWindows
  2. によって提供されているもののソフトウェア
  3. スティックネイティブDelphiのコンポーネントへ

私は個人的に私のソース「すべてのデルファイ」を保つのが好きです。画像を表示する場合、デルファイは想像できるほぼすべての画像フォーマットをサポートする多くのサードパーティのライブラリに恵まれています。

画像

ImageENは無料Vapyreイメージライブラリ(名前は少し..ですだけでなく、その素晴らしい製品)のようにもあります(商用)良いパッケージですし。最も一般的なフォーマットのサポートをすばやく追加するため、GraphicsEXは多くの開発者が使用する伝統的なDelphiの拡張機能です。 DLLファイルのコレクションであるFreeImageもありますが、Delphiのラッパークラスを使用すると使いやすくなります。 TorryのDelphi Pages(google it)のグラフィックスセクションを見てみると、堅牢なサポートが得られます。

PDF

はPDFプレビュー/読み取りのために私はGnosticeの製品ラインを見てみましょう。これらは、PDFファイルを生成して表示するためのネイティブなDelphiコンポーネントを提供します(http://www.gnostice.com/)。代わりに(PDFの場合)、私はおそらくAdobeのPDFリーダーと一緒に出荷されるActiveXコンポーネントに行くだろう。しかし、これらのオブジェクトが起動時にアプリケーションに登録され、使用可能であることを確認する必要があります。

だからあなたの「ユニバーサルビューア」のために私は

  1. (ステータスバーなど、ボタンを提供するために)ベースビューア-フォームを作成しますDecend 3
  2. ファイルを開くための仮想メソッドを追加します。これは、それぞれ異なるメディアタイプを扱うフォームです。 TfrmPDF、TfrmImage、TfrmHTMLが得られます。それぞれで、open()メソッドをオーバーライドします。このようにして、主なアプリケーションは各形式の詳細を気にする必要はありません。

HTML

Delphiはそれ自身のネイティブのWebレンダラのしているとして、あなたは、運にあるHTMLを表示するため。それはSteve Baldwinによって書かれ、THTMLViewerと呼ばれています。それはopensourceとしてリリースされており、あなたはGoogleのプロジェクトでそれを見つけるでしょう。

+0

サードパーティのライブラリへのアイデアや提案をありがとう! –

0

埋め込みビューアにはドキュメントが表示されますが、外部ビューアが必要な場合は、IEの外部に表示されます(デフォルトではイメージビューアに表示されます)。

+0

あなたはatviewerを意味しますか?はい、それは私が好きではないことの一部です。 –

+0

MineがWindows Photo Viewerに登場しました.TIFF用に登録したものと思います。 Imageコントロールは、何かが欠けていない限り、複数ページのTIFFにうまく対応しません。 – Mmarquee

2

私はそれであなたが閲覧するファイルを見て、3(または4つ、または5)のいずれかを行い、独自のビューアTFormはを、書くという事を示唆している:

  1. それはPDFなら、またはHTMLの場合は、組み込みのIE Webブラウザ(www.bsalsa.comのTEmbeddedWBは、付属のVCL IEラッパーTwebBrowserよりも優れています)でロードします。

  2. 画像の場合は、サイズ変更/拡大縮小/スクロールのサポートがある画像ビューアコントロールに画像を読み込みます。

  3. テキストファイルまたはRTFファイルの場合は、RichEditにロードします。

  4. OLEタイプの場合は、OLEコンテナビューで表示できます。それはそのファイルタイプにリストされたオブジェクトを持っている場合

+0

TEmbeddedWBは良いです、私は前にDEMOをコンパイルしてみました。 –

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

+0

ヒントはありがたいですが、サムネイルが小さすぎます。 –

関連する問題