[VB 6]Control-Array übergeben

Hallo,

Wenn ich in der IDE Mehrere Controls mit gleichen Namen angelegt habe ich ein Array dieser Controls. Wie muß ich das Deklarieren wenn ich es einer Procedure übergeben will?

MFG CBothe

Hallo

Ich denke das wird nicht gehen.
gruss, Giuseppe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ReHallo

  1. Vorschlag: Probiere es mit einem Array of Objects

  2. Vorschlag: Wenn 1. nicht funktioniert, dann übergib die Parent-Form, durchlaufe in der Funktion die Controls-Auflistung der Form und checke den Namen (

    dim c as control
    for each c in form.controls
    if c.name=„name“ then…
    next

cu, holli

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Auch Hallo,

hab gerade kein VB da. Aber ich wuerde den Parameter in der Sub/Funktion einfach als variant definieren

Und dann kannst du das Controll array einfach reinstopfen Test(MeinControls) und in der Funktion über den Index zugreifen. Aus dem Kopf würde ich sagen über Item:

Sub Test(MeinControl as Variant)
MeinControl.Item(0).Caption =„BlahBlub“
MeinControl.Item(1).Caption =„BlubBlah“
end sub

Das sollte funktionieren.

Viel Spass,

Asmodi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

habe die Lösung gefunden
Steuerelementefeld ist vom Typ Object.

MFG CB

Kannst Du den Code hier posten? Nimmt mich auch Wunder.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

hier der code:

Option Explicit

Private Sub Form\_Load()
 SwitchFrame Frame1, 3
End Sub

Public Sub SwitchFrame(rahmen As Object, idx As Integer)
 Dim a As Integer

 For a = 0 To rahmen.Count - 1
 If a = idx Then
 rahmen(a).Visible = True
 Else
 rahmen(a).Visible = False
 End If
 Next
End Sub

Hallo,

folgende lösung habe ich gefunden:

Option Explicit

Private Sub Form\_Load()
 SwitchFrame Frame1, 3
End Sub

Public Sub SwitchFrame(rahmen As Object, idx As Integer)
 Dim a As Integer

 For a = 0 To rahmen.Count - 1
 If a = idx Then
 rahmen(a).Visible = True
 Else
 rahmen(a).Visible = False
 End If
 Next
End Sub

Dank für deine Antwort und MFG CB

cool, wäre nicht draufgekommen

Sub test(ctl as control)
Falls die Übergabe 'call test(MeinControl) ist:
ctl(0).Left = 10
Falls die Übergabe 'call test(MeinControl(0)) ist:
ctl.Left= 10
End Sub

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]