none
フォーム間のメソッドの呼び出しについて RRS feed

  • 質問

  • おはようございます。

    VB6です。
    フォーム間のメソッドについて教えてください。

    MainForm  SubForm があります。

    MainFormに、パブリックに指定したメソッドを作成します。

    Public Function SETDATA () As Boolean

    この関数をSubFormから呼び出す場合なのですが

    Call MainForm.SETDATA とやれば呼び出す事ができるのですが。
    (インスタンス手順を暗黙的に省略しているだけ?)

    ?)現在、クラスの勉強中でして、MainFormのインスタンスを
      生成してSETDATAを呼び出したいです。
      いろいろ、試したのですが上手く綴る事ができません。
      教えてください。よろしくお願いします。
      また理論的に間違っている場合にもご指摘ください。

    ?)またフォーム間のメソッドの呼び出しの場合
      
    1つのフォームをインスタンスをし、関数を呼び出すというのは
      正しい?(スマート?)なコーディング方法なのでしょうか?

    いろいろやった1例):

    SubForm内にて
    ------------------------------
    Option Explicit
    Dim DATA As Object
    ------------------------------
    Private Function TEST () As Boolean
    Set DATA = MainForm.SETDATA

    Call DATA
    2008年10月4日 0:38

回答

  •  2|3 さんからの引用

    ?)現在、クラスの勉強中でして、MainFormのインスタンスを
      生成してSETDATAを呼び出したいです。
      いろいろ、試したのですが上手く綴る事ができません。
      教えてください。よろしくお願いします。


    VB6の実行環境がないので確かめていませんが、以下でいけるはずです。

     

     Dim mf As MainForm
     Set mf = New MainForm

     Call mf.SETDATA

     

     2|3 さんからの引用

    ?)またフォーム間のメソッドの呼び出しの場合
      1つのフォームをインスタンスをし、関数を呼び出すというのは

      正しい?(スマート?)なコーディング方法なのでしょうか?

     

    正しいコーディング方法です。と思いますが、最新のVBには暗黙のインスタンスというのが追加され、VB6のように必ずしも明示的にインスタンスを生成しなくてもよくなりました。確かに初心者にはプログラミングの敷居が下がりましたが、上級者には反対される方も多いようです。

    2008年10月4日 1:16
    モデレータ

すべての返信

  •  2|3 さんからの引用

    ?)現在、クラスの勉強中でして、MainFormのインスタンスを
      生成してSETDATAを呼び出したいです。
      いろいろ、試したのですが上手く綴る事ができません。
      教えてください。よろしくお願いします。


    VB6の実行環境がないので確かめていませんが、以下でいけるはずです。

     

     Dim mf As MainForm
     Set mf = New MainForm

     Call mf.SETDATA

     

     2|3 さんからの引用

    ?)またフォーム間のメソッドの呼び出しの場合
      1つのフォームをインスタンスをし、関数を呼び出すというのは

      正しい?(スマート?)なコーディング方法なのでしょうか?

     

    正しいコーディング方法です。と思いますが、最新のVBには暗黙のインスタンスというのが追加され、VB6のように必ずしも明示的にインスタンスを生成しなくてもよくなりました。確かに初心者にはプログラミングの敷居が下がりましたが、上級者には反対される方も多いようです。

    2008年10月4日 1:16
    モデレータ
  • 上記のコードでコンパイル通りました。
    ありがとうございます。


    私も、VB6の習得が終わり次第、次の.NET移行の準備を始めており
    次のVBではインスタンスの暗黙化を頭におき、取り組みます。

    ありがとうございました。
    2008年10月4日 1:33