Variablen in einen Private Sub übergeben

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Curzon.

    Variablen in einen Private Sub übergeben

    Guten Abend,

    Also ich hab ein Problem.

    Ich habe mehrer Variablen die immer die gleichen Eigenschaften habe
    Also habe ich meinen eigenen Variablen Typ definiert.
    In der Benutzung sieht das dann z.B. so aus:

    Fabrik.Energie
    Fabrik.Personal
    Haus.Energie
    Haus.Energie

    Da der Wert fest ist und sich nicht verändert habe ich den Variblen den Wert im Form Load
    auch gleich zugewiesen.

    Der Funktioniert auch.

    Jetzt will ich aber das wenn ein Menüpunkt gedrückt wird der Name z.B. Fabrik in eine Variable
    übergeben wird so das ich sie in einem von mir erstellten Private Sub übergeben wird.

    Und das funktioniert nicht.

    Der Code sieht so aus

    Visual Basic-Quellcode

    1. Private Sub mnu_Fabrik_Click()
    2. Uebergabe = Fabrik
    3. Berechnung
    4. End Sub
    5. Private Sub Berechnung_()
    6. lblEnergie.Caption = lblEnergie.Caption + Uebergabe.Energie
    7. End Sub


    Mein Problem ist funktioniert das Überhaupt oder ist das gar nicht möglich.
    Wenn es geht als was für einen Variablen muss ich dann Uebergabe definieren.

    Ich hoffe ich habe mich verständlich ausgedrückt.

    Schon mal danke für mühe die ihr euch beim lesen gemacht habt.

    Mit freundlichen Grüßen
    Curzon

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Curzon“ ()

    Hi!

    Bitte verwende den VB-Tag! Der macht das ganze viel, viel übersichtlicher. (Einfach [vb ] vor und [/vb ] nach den Code packen, ohne Leerzeichen)

    Also bevor ich dir wirklich weiterhelfen kann, müsste ich wissen, wie dein UDT (User defined type, Variablentyp) heißt.

    Visual Basic-Quellcode

    1. Private Sub mnu_Fabrik_Click()
    2. Berechnung Fabrik
    3. 'bzw.
    4. Call Berechnung(Fabrik)
    5. 'was dir von beidem besser gefällt
    6. End Sub
    7. Private Sub Berechnung(ByRef someRes as res)
    8. lblEnergie.Caption = lblEnergie.Caption + someRes.Energie
    9. End Sub


    ByRef bedeuted, dass die Variable übergeben wird.
    ByVal würde bedeuten, dass die Variable erst kopiert wird und dann die kopie übergeben wird.
    In dem Fall macht es keinen Unterschied. Da musst du dir erst gedanken machen, wenn ein Wert von someRes geändert wird. Wenn du die Wahl zwischen ByRef und ByVal hast, empfiehlt es sich meistens ByRef zu verwenden, weil das schneller geht. (muss nix zusätzlich im RAM kopiert werden)
    Wenn nix angegeben wird (weder ByRef, noch ByVal), wird in VB6 automatisch ByRef gewählt. Sauberer ist es jedoch die 5 Buchstaben jedes mal dazu zu schreiben.