自分が作ったOCXをフォームに配置するには?

解決


かんとく  2010-08-19 19:32:24  No: 39022

お世話になっております。

XP,Delphi2007です。

Delphiを使って自分が作ったOCXを、新しいアプリケーションでフォームに配置するには、どうしたらよいのでしょうか。

自分が作ったOCXを、VB6でフォームに配置するには、
プロジェクト→コンポーネント→コントロール
から自分が作ったOCXを選択すると、ツールボックスに追加され、フォームに配置することができます。

Delphi(2007)では、どうするのでしょうか。

よろしくお願いします。


igy  2010-08-21 06:53:25  No: 39023

OCXは作ったことがないので、はずしているかもしれませんが・・・

メニュー「コンポーネント」−「コンポーネントのインポート」の
「ActiveXコントロールの取り込み」

は、いかがですか?


かんとく  2010-08-23 23:18:08  No: 39024

ありがとうございます。

コンポーネント→コンポーネントのインポート→ActiveXコントロールの取り込み
から、自分の作ったocxファイルを選択して、
Project1.dprojプロジェクトにユニットを追加
をすると、画面右上のプロジェクトマネージャー部分にファイル名が表示されます。
しかし、フォームに配置することができません。
MemoやButton等と同じ感覚でフォームに配置できる方法があると思うんですが、分かりません。

自分の作ったocxファイルを選択したあと、
ユニットの作成
を選択しても、やはりフォームに配置できません。

よろしくお願いします。


igy  2010-08-24 00:26:56  No: 39025

>Project1.dprojプロジェクトにユニットを追加をすると、

試していないのですが、

取り込んだOCXを、コンポーネントとして新規パッケージか既存のパッケージにインストールし、
ツールパレットからコンポーネントとして、選ぶことはできますか?


かんとく  2010-08-24 01:18:45  No: 39026

ありがとうございます。

>取り込んだOCXを、コンポーネントとして新規パッケージか既存のパッケージにインストールし、
というところが、具体的にどう操作したらよいのか分かりませんでした。

取り込んだあとに、
コンポーネント→VCLコンポーネントの新規作成
や、
コンポーネント→パッケージのインストール
をしても、リストに自作のocxのファイル名が表示されません。
ここで、ファイルから追加しようとしても、拡張子がbplのファイルしか表示されないので、ocxファイルを選択できません。

自分でももう少し調べてみますが、引き続き、よろしくお願いします。


igy  2010-08-24 16:34:29  No: 39027

試していませんが、

>メニュー「コンポーネント」−「コンポーネントのインポート」の
>「ActiveXコントロールの取り込み」

で、*+TLB.dcr、*_TLB.pas
が生成されたら、

>>取り込んだOCXを、コンポーネントとして新規パッケージか既存のパッケージにインストールし、
>というところが、具体的にどう操作したらよいのか分かりませんでした。

コンポーネントのインストール方法 (Delphi 2007) 
http://mrxray.on.coocan.jp/Delphi/CompoInstall/CompInstallD2007.htm

を参考に、コンポーネントをインストールできますか?


かんとく  2010-08-28 03:42:53  No: 39028

ありがとうございます。

教えていただいたサイトを見ながら、作業をしてみました。

図7の追加まではできたのですが、
図8の[コンパイル]または[再構築]のところで、どちらを選択してもエラーが出ます。

コンパイルを実行すると、
「$DENYPACKAGEUNITが指定している'ComServ'はパッケージに置くことはできません」というエラーが、画面下部のメッセージのところに表示され、コンパイルがストップしてしまいます。

もう少し調べてみますが、引き続きよろしくお願いします。


かんとく  2010-10-01 19:41:53  No: 39029

お返事遅れてすみません。(誰に?)

結局OCXをフォームに配置する方法は分かりませんでしたが、フレームを使うことで、やりたかったこととほぼ同じ事ができました。

まず、フレームを作成し、そのフレームを配置したいフォームで、ツールパレットのStandardのFramesを選択して、さきほど作ったフレームを選択したら、フォームに配置することができました。

アプリケーションを配布するときに、プログラム本体とOCXファイルが別々だと、ランタイムエラーの原因にもなるので、フレームを使ったこの方法のほうが良いかなと思います。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加