ユーザドキュメントから ActiveX DLL に持たせているフォームを表示させ、そのフォーム上のイベントをユーザドキュメントに通知するには?

解決


のっぽさん  2003-03-22 01:31:37  No: 106374

ブラウザ(IE)上に表示したユーザドキュメントから ActiveX DLL に持たせているフォームを表示させ(frmXX.show)、そのフォーム上のイベント(例えば、ボタンクリックやスライダの移動等)によって、ユーザドキュメント上のプロパティを変更する様な処理を作りたいのですが、コンパイル時に(そのフォームに記述した)ユーザドキュメント上のプロパティを認識せず、エラー(「変数が定義されていません」)になってしまいます。(プロパティを設定する部分をコメントアウトし、単にフォームを表示する事は出来ました)

・ユーザドキュメントのプロパティ例
  aXXXX.Scale

・ユーザドキュメントから呼び出すフォームの記述例
  Private sub cmd_click
   (省略)
    UserDocument.aXXXX.Scale = 3
  End Sub

上記記述例の「UserDocument.〜」の部分をユーザドキュメントの名称に変更しても同じ結果になってしまいました。

フォーム上からユーザドキュメントのプロパティは、設定出来ないのでしょうか?
上手く説明する事が出来ませんでしたが、御存知の方が居ればアドバイスを御願い致します。(別な方法でユーザドキュメントのプロパティを変更する事が出来るのであえば、それでも構いません)


Loreley  2003-03-23 22:30:25  No: 106375

ちょっと複雑なんですが。
条件
  UserDocument1とForm1があると過程
  UserDocument1とForm1にはそれぞれCommandボタンがひとつずつある

1.Moduleをつくりそのなかに
public gUDoc1 as UserDocument1

2.UserDocument1に次のコードを追加
Private Sub UserDocument_Initialize()
   Set gUDoc1 = Me
End Sub

Public Property Let TestCaption(GetCap as string)
   command1.caption=GetCap
end Property

3.Form1に次のコード
private sub Command1_Click()
   gUDoc1.TestCaption="Test"   
end sub

こういった感じでやればできました。
もっといい手があるかもしれません。
ちなみにためしたのはWinXP IE6の環境です
ちなみにgUDoc1.Command1.Caption=
ってのはできません


のっぽさん  2003-03-24 18:22:36  No: 106376

Loreleyさん、回答ありがとうございます。
急いで教えて頂いた内容を試してみます。
確認取れ次第、再度書込みします。


のっぽさん  2003-03-24 20:25:09  No: 106377

自分の方でも、以下の手順で行ってみましたが、なぜか
うまく出来ませんでした。

(1)標準モジュールに以下のコードを追加
      Public gUserDoc as UserDocument

(2)ユーザドキュメントに以下のコードを追加
      Private Sub UserDocument_Initialize()
            :
        Set gUserDoc = Me
            :
      End Property

その他の指定は、Loreley さんの内容を参考にしてコード
を追加しました。

現象としては、IEでユーザドキュメントを表示させる際
、「ファイルのダウンロード」というダイアログが表示さ
れ、ユーザドキュメントを開くか保存する様に催促されま
した。(開いても、保存しても表示はされませんでした)

上記(2)の記述をコメントにした際は、表示自体はうま
く出来たので、私の方の何かしらの記述が悪い様です。

ちなみに私の環境は、Win2k Pro + IE6 + VB6 SP です。
もう少し自分で調べてみます。取りあえず、状況のみ報告
させて頂きました。


Loreley  2003-03-25 00:01:07  No: 106378

参考になるかわかりませんが、
私がテストしたときは、.vbdファイルをIEにドラッグアンドドロップしました
また.dobファイルをドラッグアンドドロップすると
「ファイルのダウンロード」ダイアログがでます。

それと、今気がつきましたがコードの
Public gUserDoc as UserDocument

UserDocument1やUserDocument2など、
個別のユーザードキュメントの名称を設定してください。
のっぽさんの例での
aXXXXでしょうか。
Public gUserDoc as aXXXX
となります。

これは私のコードが見づらかったですね(^^;
すいません。


のっぽさん  2003-03-25 01:33:54  No: 106379

Loreleyさん!  有り難うございました!  上記の通りコードを修正
した所、フォーム側でもユーザドキュメントのプロパティが読める様
になりました。
正直言ってVBは得意な方ではなく、今回の事に3〜4日も掛かって
しまいましたが、何とか1歩前進出来ました(T_T)
感謝致します。有り難うございました。


のっぽさん  2003-03-25 01:34:52  No: 106380

嬉しさのあまり、解決時のチェックを入れ忘れて
しまいました( ^_^;)


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

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






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