


 
 
 
 
 
 
 |
Delphi2010 OLEコンテナ(OleContainer) 2010/10/29 |
前回は[System]内の「MediaPlayer」(メディアプレイヤー)について見ましたので、今回は同じく[System]内の「OleContainer」(OLEコンテナ)について見てみます。OLEコンテナは Delphi6 にもあります。
「テスト20」として新規作成しておきます(フォルダ「020」)。
取り合えずOLEコンテナを配置してみます。1つ目ですので Nameプロパティは「OleContainer1」となります。
OLEコンテナは、配置した領域にOLEオブジェクトを埋め込み/リンクを行います。このOLEコンテナをダブルクリック、又は、右クリックメニュー「オブジェクトの挿入」を行って下さい。

↓

「オブジェクトの挿入」画面が表示されます
オブジェクトの種類はそのPCに依存します
↓

「ペイントブラシの絵」を選択すると
Windowsの「ペイント」が起動される
この状態で、保存・コンパイル(再構築)・実行を行います。

OLEコンテナ部分をダブルクリック
↓

ペイント起動
↓

落書きして閉じる
↓

落書き内容が反映される
ダブルクリックすると編集
↓

↓

実行時にオブジェクトの挿入の画面を表・選択したい場合は、InsertObjectDialogメソッドを利用します。例えば、このOLEコンテナを右クリックした際に「オブジェクト挿入」をしたい場合は
procedure TForm1.OleContainer1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (ssRight in Shift) then
OleContainer1.InsertObjectDialog ;
end; |
のようにします。保存・コンパイル(再構築)・実行をすると

OLEコンテナ部分を右クリック
↓

「オブジェクトの挿入」画面が表示されます
[OK]をクリック
↓

ダブルクリック
↓

ペイント起動
となります。
「オブジェクトの挿入」を行わずにダブルクリックすると
という例外が発生しますので注意します。
OLEコンテナ OleContainer1 の縦横サイズと、そこに埋め込むオブジェクトの縦横サイズが異なる場合、どのようにするかは SizeMode プロパティで指定します。以下、ヘルプより。
smClip | デフォルト。通常のサイズで OLE オブジェクトを表示し,コンテナ内部に収まらない部分をクリッピングする |
smCenter | 通常のサイズで OLE オブジェクトを表示し,コンテナ内部で中央に位置を合わせる |
smScale | OLE オブジェクトの表示をコンテナにちょうど収まるように拡大または縮小する(幅と高さの割合は一定に保たれる) |
smStretch | OLE オブジェクトの表示を OLE コンテナにちょうど収まるように拡大または縮小する(OLE オブジェクトの均整は保たれない) |
smAutoSize | 通常のサイズで OLE オブジェクトを表示し,OLE オブジェクトのサイズに合わせてコンテナのサイズを自動的に変更する |
<オブジェクトインスペクタ>を見ると以下のようになっています。
というわけで、OLEコンテナも色々な機能はあると思いますが、簡単に紹介するだけにしておきます(私も普段使わないので詳しくありませんけれども)。Microsoft Office がインストールされていれば、アプリケーション画面でワード/エクセルのデータを見せる事が出来るでしょうし、Adobe Reader をインストールしていれば、PDFデータを見せる事も出来たりするでしょう。既存のアプリケーションと組み合わせる事によって機能が拡張されるという感じで、面白いと思います。が、対象とするアプリケーションがインストールされていなければ動作できませんので注意をしないといけない点は幾つかあると思います。
[System]内にはこのほかに、COM+管理用の COMAdminCatalog、DDE通信用の DdeClientConv、DdeClientItem、DdeServerConv、DdeServerItem、がありますが少し難しいので説明はパスします。また、Windows3.1時代風のコンポーネントを集めている[Win 3.1]内のコンポーネントも、いまさら Windows3.1?という感じですのでこれも説明をパスします。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/28
2010/10/29
▼2010/10/30
シェアウェア
Script!World
データベース
|