質問

Delphiプログラムで、画像ファイルといくつかの一般的なドキュメント(PDF、RTF、テキストなど)を表示したいと思います。

  1. 経由 atviewer, 、しかし、ファイルサイズが大きすぎます。
  2. エンドユーザーのコンピューターに直接インストールされた組み込みインターネットエクスプローラーを介して。

私は疑問に思っています、代替手段はありますか?ありがとう。

役に立ちましたか?

解決

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

  1. Windowsが提供するソフトウェアを使用します
  2. ネイティブデルファイコンポーネントに固執します

私は個人的に「すべてのデルファイ」の情報源を維持するのが好きです。画像の表示に関しては、Delphiは、想像できるほぼすべての画像形式のサポートを提供する多くのサードパーティライブラリに恵まれています。

画像

Imageenは優れたパッケージ(コマーシャル)であり、無料のVapyre Imageライブラリ(名前は少し..まあ、それは素晴らしい製品です)も気に入るかもしれません。最も一般的な形式のサポートをすばやく追加するために、GraphicSexは多くの開発者が使用する従来のDelphi拡張機能です。 DLLファイルのコレクションであるFreeImageもありますが、Delphiラッパークラスを使用して使いやすくします。 TorryのDelphiページ(Google IT)のグラフィックスセクションをご覧ください。堅牢なサポートが見つかります。

PDF

PDFプレビュー/読書については、Gnosticeの製品ラインをご覧ください。 PDFファイルを生成および表示するためのネイティブDelphiコンポーネントを提供します(http://www.gnostice.com/)。または(PDFの場合)、おそらくAdobeのPDFリーダーと一緒に出荷するActiveXコンポーネントに行くでしょう。ただし、これらのオブジェクトが登録され、スタートアップでアプリケーションが利用可能であることを確認する必要があります。

あなたの「ユニバーサルビューアー」のために私はそうします

  1. ベースビューアーフォームを作成します(ボタン、StatusBarなどを提供するため)
  2. ファイルを開くための仮想メソッドを追加します
  3. これから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を書くことをお勧めします。

  1. PDF、またはHTMLの場合、埋め込みIE Webbrowser(www.bsalsa.comのTembeddedWBは、含まれているVCL IEラッパーTwebbrowserよりも優れています)をロードします。

  2. 画像の場合は、サイズ変更/スケーリング/スクロールサポートを備えた画像ビューアコントロールにロードします。

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

  4. OLEタイプの場合は、OLEコンテナビューで表示できます。

埋め込まれた視聴者にはドキュメントが表示されますが、外部ビューアーを必要とするものの場合、これはIEの外側に表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top