VB6で関数の引数にフォームを指定したい

解決


ルキア  2008-11-21 09:43:58  No: 101334  IP: 192.*.*.*

VB6でwinsockをつかって通信プログラムを作成しています。

フォーム1にwinsockコントロールを設置し、新しい接続があったらコントロール配列を作って、データを受信した場合別のフォームに表示させたいのですが、フォームが複数あるため、関数をつかって表示させようとおもうのですが、
現在

Private Function Hyouji(ByVal Formsno As Form)

Formsno.text1.text=jusin

End Function

と関数を作ったところエラーはでないのですが、引数にフォームが渡せていないみたいで、表示ができません。

フォームを引数にする箇所が間違っているのでしょうか?
分かる方いましたら、よろしくお願いします。

編集 削除
魔界の仮面弁士  2008-11-21 10:12:52  No: 101335  IP: 192.*.*.*

> Private Function Hyouji(ByVal Formsno As Form)
>    Formsno.text1.text=jusin
> End Function
その実装であれば、表示は行えると思いますよ。
表示できないのであれば、別の場所に問題があるのかも知れませんね。


上記 3 行の実装に気になる点もあるにはあるのですが、
表示できない件とは直接は関係無さそうです。

# 戻り値が定義されていない点とか(Sub では無いのは何故なのか)、引数が
# Nothing だった場合の扱い(エラーで良いのか/ただ無視するのが良いのか)とか、
# フォームがレイトバインドされているので、コンパイル時に Text1 の存在を
# チェックできていない点とか…。


> 引数にフォームが渡せていないみたいで、表示ができません。
その渡し方に問題があったりはしませんか?
可能であれば、メソッドの呼び出し部分の前後のコードも掲載してみてください。

編集 削除
ルキア  2008-11-21 10:19:27  No: 101336  IP: 192.*.*.*

早速の有難うございます

色々と指摘ありがとうございます。
戻り値がないので、Subでいいですね。

Nothingとはフォームがないということでしょうか?
レイトバインド、、すいません、わからないので調べてみます。

呼び出しの部分は
Call(form2) 
と直接フォーム名をコードに記述しています

フォーム型というものを理解できていないのですが、他に

 dim f As Form2

と宣言して

Call(f)

などとしてみましたがやはりだめでした。


分からないことだらけで申し訳ありませんが、よろしくお願いします。

編集 削除
ルキア  2008-11-21 10:57:52  No: 101337  IP: 192.*.*.*

魔界の仮面弁士さんご回答ありがとうございました。

解決しました。

編集 削除