STEUERELENTE GRUPPIEREN

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von bernd24.

    STEUERELENTE GRUPPIEREN

    Ich habe auf meinem Formular 9 commandboxen sowie 18 shapes!
    Wenn ich ihnen jetzt allen die gleiche Eigenschaft
    z.B.. die ".Visible" Eigenschaft geben will
    muß es doch eine andere Möglichkeit geben als diese alle einzeln zu benennen


    Ich mußte mich so herumschlagen es ist aber das ist nicht so das wahre:



    Sub allesanz(wie As Boolean)

    'command buttons alle anzeigen/ausblenden

    Command1.Visible = was
    Command2.Visible = was
    Command3.Visible = was
    Command4.Visible = was
    Command5.Visible = was
    Command6.Visible = was
    Command7.Visible = was
    Command8.Visible = was
    Command9.Visible = was

    'rote shapes alle anzeigen/ausblenden

    Shape1.Visible = was
    Shape2.Visible = was
    Shape3.Visible = was
    Shape4.Visible = was
    Shape5.Visible = was
    Shape6.Visible = was
    Shape7.Visible = was
    Shape8.Visible = was
    Shape9.Visible = was

    'grüne shapes alle anzeigen/ausblenden

    Shape10.Visible = was
    Shape11.Visible = was
    Shape12.Visible = was
    Shape13.Visible = was
    Shape14.Visible = was
    Shape15.Visible = was
    Shape16.Visible = was
    Shape17.Visible = was
    Shape18.Visible = was

    End Sub


    vieleicht kennen ihr ja einen Anderen Weg?

    Verpasse den einzelnen Steuerelementen einen Index (Eigenschaft "Index"). Dieser beginnt meistens bei "0" und wird dann in 1er Schritten erhöht.

    Dann hast du z.B. Command1(0), Command1(1), usw.

    Die Elemente können dann einfach in einer Schleife durchlaufen werden, Beispiel:

    dim i as integer
    for i = 0 to 10
    command1(i).visible = false
    next i

    Wenn du aber ALLE CommandButtons (z.B.) auf dem Formular ausblenden möchtest, dann benutze folgenden Code:

    dim ctrl as control
    for each ctrl in Form1.Controls
    if typeof(ctrl) is Command then
    (ctrl as Command).visible = false
    end if
    next ctrl
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo Marcus,

    was soll denn dieser Quelltext

    dim ctrl as control
    for each ctrl in Form1.Controls
    if typeof(ctrl) is Command then
    (ctrl as Command).visible = false
    end if
    next ctrl

    bewirken, da sind einige Fehler drin befürchte ich.

    Gruß Markus
    Mag sein, hab ihn nicht getestet, nur eben zusammengetippt (im Forum, nicht unter VB). Was für Fehler sind denn da drin?

    Edit:

    Vielleicht so:

    Dim ctrl As Control
    For Each ctrl In Form1.Controls
    If TypeOf ctrl Is Command Then
    ctrl.Visible = False
    End If
    Next ctrl

    Ich programmiere wohl zu viel in Delphi...
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo Marcus,

    ich habe diesen Befehl bisher nie benutzt und auch nie vermisst und meine schnelle Suche danach, fand diesen Befehl nicht.

    Wenn man folgendes umschreibt
    If TypeOf ctrl Is CommandButton Then ctrl.Visible = False
    dann kann man die Schleife so einsetzen wie du es vorhattest.

    Ich frage mich gerade, gibt es noch andere Unterschiede zwischen TypeName und TypeOf außer der andere Rückgabewert, die andere Syntax und der Tatsache, dass TypeOf zeitlich etwas schneller ist wie die andere Variante.

    Weißt du da mehr?

    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „alchimist“ ()