ActiveXコントロールのシステムへの登録とパレットへの登録の違いがいまいちよくわかりません。
他人の自作ActiveXをシステムに登録はできなかった(実行->ActiveXサーバの登録)のですが、パレットには登録できまして、実行することはできましたが、なぜだかわかりません。
どうかご教授お願いします。
できなかったとは、エラーが発生したのでしょうか。
プロジェクトとして、ActiveXのプロジェクトなら、誰が作った物でもできると思うのですが。
要因として考えられるのは、
・すでにそのCLSIDが使われている
・プロジェクトにエラーがある
だと思います。
すでにコンパイルされたocxを登録したいのであれば、regsvr32.exeを使用します。
regsvr32を実行すると、ヘルプのダイアログが出るので参考にしてください。
Delphiのコンポーネントに登録する場合、tlibimpなどでtypelibを取り出し、それをDelphiに変換して行っています。
typelibが存在するActiveXであれば、コンポーネント化は可能です。
# 設計時に使えるかどうかは、そのActiveXによります。
早速のレスありがとうございました。
なんだかコンポーネントがありませんとでてきました。単純にコンパイルエラーみたいです。
とりあえず、システムの登録とパレットの登録ではどう違うのかよかったら教えてください。
システムに登録すると、そのActiveXコンポーネントは(登録した)Windows上で使うことができます。
Delphiだけでなく、VBでもVCでも、InternetExplorerでも使用できます。
# 動作はそのコンポーネントによります
パレットに登録してあるのはActiveXだけではありません。単純なVCLコンポーネントがほとんどだと思います。
また、まだ登録していないActiveXは、パレットに登録できません。
先ほど書いたように、一度VCLコンポーネントとして変換し、そのActiveXを操作するコンポーネントを、パレットに登録します。
ActiveXとVCLを混同されているようですが、このあたりは大丈夫でしょうか。
VCLを抜きに考えれば、
・システム登録はDelphiに関係ない登録
・パレットに登録できるActiveXは、すでにシステム登録してある(もしくはパレット登録時にシステムに登録してから行える)
です。
なるほど〜。
おそらく、パレットに登録と同時にシステムにも登録されたみたいですね。
でも、システムへの登録はうまくいかないし、なんかわかりませんね。
ツイート | ![]() |