• 締切済み

ActiveX.exeでモーダルフォーム

標準EXEとして作成したForm1上のボタンを押すとActiveX.exeとして作成したForm2をForm1のモーダルフォームとして表示したいのですができません。 Form2の表示はできるのですがForm1も操作が可能でForm1をクリックすると,「コンポーネントを使用できません」とエラーが表示されてしまいます。 ActiveX.exeではなくActiveX.dllで作成すれば問題はないのですが,独立系としても使用できるようにするためにActiveX.exeとして作成しています。 開発環境はVB6.0+SP5, WindowsXP+SP2です。回答よろしくお願いします。

みんなの回答

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.1

Object型変数を定義し、 Mainサブルーチンで 単独起動の場合は そのObject型変数に クラスオブジェクトを セットするように記述します。 呼出起動の場合は、 単にクラスをコールすればできるはずです。

関連するQ&A

  • ActiveXの種類について

    初歩的なことをお聞きします。 ActiveX(VB6用)には、Dll、Exe、コンポーネント(Ocx?)といった種類があると思いますが、 それぞれの用途はどうのように切り分けるものなんですか?特にExeは標準のExeと何が違うのか分かりません。 また、これらは.netでもそのまま使用できるんですか? 宜しくお願いします。

  • ActiveXの使い方を教えてください。

    昨日も質問させていただきましたがま倒しえてください。 標準EXEまでできていてIE内に表示させるためにはActiveXコントロールで作成しないといけないのですがどのようにどんな風にすればよいのでしょうか。 全くわからないので参考になる文献やサンプルがあれば非常に助かります。 私はVB6で開発して、Inter Devも入っています。 どんなActiveXコントロールを作成したらいいのでしょう・・・ よろしくお願いいたします。

  • フォームの呼び出しについて

    VB.NETで メインのEXEとサブのDLLに分けて作っています。 EXEからDLL内のフォームを表示させようとする場合ですが、 VB.NETではどのように呼ぶべきなのでしょうか? VB6の頃は、EXEからDLL(ActiveX DLL? )のフォームが直接呼べなくて、 EXE側 Dim dll as new DLLClass dll.FormShow() DLLのクラス(DLLClass) Sub FormShow() DllForm.Show みたいに、DLL内のクラスのメソッドをコールし、 その中で、フォームを表示するという手順で呼び出してました。 VB.NETではFormもクラスなので、EXEからDLL(クラスライブラリDLL)内のフォームを 直接呼んでもいいように思うのですが(実際直接呼べる)、 カプセル化というのを考えたときに、フォームを直接呼ぶのではなく、 コントロールするクラスを経由して(VB6のときの方式)呼び出すべきなんじゃないかなと思うのです。 どちらがよいのでしょうか?

  • ActiveX DLL と ActiveXコントロールの違い

    VB6で開発をしています。 複数のEXEファイルを使用するシステムです。 各EXEファイルの共通のモジュールをライブラリ化しようと思っています。 これは [ActiveX DLL] 又は、[ActiveXコントロール] のどちらでも実現できると思うんですが、どちらで作成した方が良いのでしょうか? それぞれのメリット、デミリットを教えて下さい。

  • ActiveX EXEとタイマーとVB

    いつもお世話になってます。 さっそく質問ですが、 ActiveX EXE側にタイマーとテキストボックスを持っています。 VB側のフォームにテキストボックスがあります。 VBからActiveX EXEを起動させ、決まった時間(例えば5秒おき)にVBのテキストボックスに ある文字を表示させる、ということがしたいです。 条件として、 VB側の動きは、 (1)最初のActiveXを起動 (2)ActiveXのSetとNothingだけしかしない                   しかしません。 なので、ActiveXからは「RaiseEvents」はしません。 ActiveX側で、タイマーイベント部分に、 ActiveXのフォームのテキストボックス.text = "文字" set △△ = ActiveXのフォームのテキストボックス (△△は、ActiveXのフォームのテキストボックスとしてセットされています。) のように、プログラムしてみたのですが、 VB側のテキストボックスに表示できませんでした。 尚、VB側は、ActiveX以外の処理があるので、途中からActiveXを起動させることになります。 この条件で、VBのテキストボックスに文字を表示させることはできますか? もしできるとしたら、どのような方法がありますか?? まだネットや本で調べ途中なので、もし何か参考ページがありましたら教えていただきたいです。 よろしくお願いします。

  • VB6.0 ExeとDllの違い

    いつもお世話になっております。 今更ながらなのですがVB6.0について質問させて下さい。 新規でVB6.0を起動すると、「標準Exe」・「ActiveXExe」・「ActiveXDll」・「ActiveXコントロール」等がでてきますよね? 普段アプリを開発する時は「標準Exe」しか使用しないのですが、「ActiveXExe」・「ActiveXDll」・「ActiveXコントロール」の違いは何なのでしょうか?(どういうときに使い分けるのでしょうか?) ActiveXDll・・・ソースコードのみ?参照設定する?(クラスやモジュールと何が違うのでしょうか?) ActiveXコントロール・・・独自のコンポーネント(部品)を作る?(OCXのようなものでしょうか?) ActiveXExe・・・(一番分かりません) どなたかご教示お願いします。

  • ActiveXコンポーネントのデザイン部分について

    VB6でOCXを作成しましたが、デザイン(表示)部分でわからないことがあります。 作成したOCXを別のプログラムでコンポーネント参照した際に、 通常タイマーならタイマーの画像が、ボタンならボタン形状のツールバーが表示されるのですが、デフォルト画像(表現しにくいのですが青のタスクバーに4つのボタンと鉛筆マーク)が表示されます。 これをオリジナルデザインにすることは可能でしょうか? また、使用する際にタイマーイベントのようにデザイン時にはコンポーネントが見えていて、実行時には見えなくする方法が知りたいです。今は実行させると、作成したフォームが丸見え状態です。 あとVB6で作成したコンポーネントはVisualStudioの他のバージョン(2003や2005)でも使えるのでしょうか? 最近ActiveXコンポーネントの作成がわかり喜んでいたのですが、つめが甘いのかデザイン部でつまずいています。ActiveXコンポーネントは古い技術でしょうか。 ActiveXコンポーネントについて詳しく書かれている書籍はありますか? できればVB6を希望しますが、VC6でも構いません。

  • ActiveXコントロールの作成(VB6)

    こんばんは。 今、VB6でActiveXコントロールを作成しようと思っています。 現在、標準EXEにて、プログラムが作ってあります。 動作としては、 1.スタートボタン(CmdStart)で開始 2.処理(外部の測定器によるデータ収集) 3.終了ボタン(CmdEnd)にてプログラム終了 です。 これをもとに、ActiveXコントロールを作成したいです。手元にある文献にしたがってほぼコピー&ペーストで作成しました。また、これの動作を調べるため、標準EXEのフォームを作成し、そのフォームにActiveXコントロールを貼り付けました。 ここで質問です。 Form_LoadはUserControl_Initializeに書き換えました。(これは文献に載っていました) 最後のプログラム終了がうまくいきません。 標準EXEでは Private Sub CmdEnd_Click() Unload Me End Sub と書いてプログラムを終了させていました。 ここを書き換えずにActiveXコントロールを実行させたらエラーが出ました。"Unload Me"を"End"に書き換えてみたら、サポートされていないと出ました。 CmdEndをクリックしてプログラムを終了させるにはどう書けばいいでしょうか? よろしくお願いします。

  • ActiveXコントロールを作成してから登録の削除は?

    VBでActiveXコントロールを初めて作成したのですが、 間違えて同じ名前のActiveXコントロール作成してしまいました。 で、コンポーネントでのActiveXコントロール追加に同じ名前のコントロール が2登録されてしまいました。 この登録されたコントロールを2つとも削除したいのですが。 拡張子「*.ocx」のファイルを削除しても、 コンポーネントのコントロールに登録したActiveXコントロール名が残ったままです。 どうすれば、この登録を削除できるのでしょうか? よろしくお願いします。m(__)m 補足: 標準.EXEファイルなどでVBを立ち上げて、 ツールボックスの上で右クリック→コンポーネント→コントロールタブ で、表示されるコントロール名に同じコントロール名が登録されている状態です。 この登録名を両方とも削除したいのですが。

  • ActiveX化したBeanをVBで使用した時の問題

    ちょっと特殊なケースだと思いますが質問させて下さい。 下記ページを見てJavaBeansをActiveX化し、VBから呼び出すことはできました。 ActiveX ブリッジ開発者ガイド http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/beans/axbridge/developerguide/ 次に、VBのフォームにWebBrowserコンポーネントを貼り付けて、Appletを含むhtmlを WebBrowserコンポーネントで読み込ませてみると、Applet表示部分が表示されず、 Java Pluginコンソールを確認すると、 登録済みのモーダリティリスナー Unable to obtain Window object とだけログが出ていました。 また、クラスローダリストをダンプしてみるとJavaBeansのパスは設定されている もののAppletのパスは設定されていませんでした。 JavaBeansのActiveXコンポーネントを使わずにWebBrowserコンポーネントのみの 場合は正常に表示されます。 クラスローダリストにもAppletのパスが設定されています。 JavaBeansのActiveXコンポーネントとAppletは共存できないのでしょうか? 何か情報をお持ちの方おられましたらご教授願います。 環境: Windows2000 SP4 VisualStudio6.0(VB6 SP6) JDK1.4.2_08