2012-03-30 2 views
0

私はtxt1という名前のカップルオブジェクトとlbl1という別のオブジェクトを持っているとしましょう。 私は、強調表示のようにこれらのオブジェクトの両方を変更する必要がある機能を持っています。vb6の関数にオブジェクトを渡す方法

私はそのオブジェクトの価値を知りたいです(どのオブジェクトでも問題ありません)、それを強調したいのですが。

Function Highlight(Obj1 As Object, Obj2 As Object) 

    MyTxt = Obj1.Text 
    Obj1.Text = "" 
    Obj1.SetFocus 

    MyCap = Obj2.Caption 
    Obj2.Caption = "" 

End Function 

どのように私はそれをachiveことができます。このようなとして

+0

あなたの現在の(サンプル)コードが提起何のエラー? – Arvo

+0

これは '無効な修飾子'エラーを返します。つまり、私はその方法でオブジェクトを使用できません。しかし、それを行う方法がなければならないと私はどのように知りたい。私はなぜ人がこの質問に-1を与えるのかわかりません。なぜなら、関数がこのようにオブジェクト参照を取得できるかどうかを知るべきではないはずです。私はちょうど試して、そのポーズがあるかどうかを尋ねます。 –

+0

あなたは、 veは言った。これはどのように呼び出され、どのような先取特権が失敗していますか? – Deanna

答えて

4

Objectは、.Textまたは.Captionプロパティを持っていません。あなたの方法は、に変更します。

Sub Highlight(Obj1 As TextBox, Obj2 As Label) 

    MyTxt = Obj1.Text 
    Obj1.Text = "" 
    Obj1.SetFocus 

    MyCap = Obj2.Caption 
    Obj2.Caption = "" 

End Sub 
+2

これが問題であれば私は驚くでしょう。 VB6オブジェクトは、実行時に実際のインスタンスのインタフェースを文字通り検索し、名前でメンバを検索することを意味しています。 – rskar

+0

私は、レイトバインディングでテキストとキャプションの問題を回避する必要があることに同意します。 OPの 'Dim MyTxt As String'、' Dim MyCap As String'、 'Option Explicit'をお勧めします。 – tcarvin

+0

ありがとう、私はそれがどうなるのか理解しています。 –

1

TypeOfをチェックアウト:

if TypeOf Obj1 is TextBox then 
    Obj1.text = "kkkkkk" 
end if 
+0

私はちょうど時間がたってしまい、この問題をもう一度見なければなりませんでした。 私はこれを使わないのはなぜですか?ループ内の多くのオブジェクトを処理するための本当に素晴らしい方法です。 –

関連する問題