kostenloser Webspace werbefrei: lima-city


übergabe parameter

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    wenn ich in den übergabe parametern schreibe: ByVal AutoRange As Boolean
    dann kann ich zwischen True und False wählen.
    Gibt es eine möglichkeit selbst festzulegen zwischen was ich wählen kann z.B. dass ein fenster erscheint mit den zahlenwerten 20 und 100. wäre das möglich?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Kannst du dein Problem nochmal anders formulieren, ich versteh die Frage nicht ganz...

    du kannst doch einfach so schreiben:

    Sub Test(ByVal Param As Integer)
    'Code...
    End Sub

    Nun kannst du Zahlen einsetzen...
  4. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    ne ich mein wenn ich z.B. hab

    Public Sub start_auto()
    Call auto(False,10)

    End sub
    Public Sub auto(ByVal AutoRange As Boolean, ByVal Range As Double)
    ....

    im obenangeführten code kann man in der public sub start_auto im call beim ersten zwischen False und True wählen. Da erscheinen zwei möglichkeiten.
    Gibt es einen befehl, bei dem ich diese Auswahlmöglichkeiten selbst treffen kann?
    Das z.B. beim 2. die Auswahl hast zwischen 20 und 30.
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Ja das geht:

    Public Enum States As Byte
    
            Number20 = 20
            Number30 = 30
            Number40 = 40
    
        End Enum
    
    
    
        Private Sub Test(ByVal iState As States)
    
            If iState = States.Number20 Then
                'Code...
            ElseIf iState = States.Number30 Then
                'Code...
            ElseIf iState = States.Number40 Then
                'Code...
            End If
    
        End Sub
    
    
        Private Sub Caller()
        
            Test(States.Number30)
        
        End Sub




    (Code ist für .NET geschrieben)

    Beitrag geändert: 18.8.2007 12:37:54 von cbhp
  6. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    bei mir funkt das nicht!
    kann das sein weil ich 6.0 progge?
    brauch ich da einen anderen code als bei .NET?

    Beitrag geändert: 20.8.2007 12:23:38 von zordy
  7. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Hättest du vielleicht mal in der VB Hilfe nachgeschaut, dann wüsstest du, dass es die "Enum"-Anweisung auch in VB 6 gibt...

    So sieht es in VB 6 aus:

    Public Enum States
    Number20 = 20
    Number30 = 30
    Number40 = 40
    End Enum
    Private Sub Test(ByVal iState As States)
    If iState = States.Number20 Then
    'Code...
    ElseIf iState = States.Number30 Then
    'Code...
    ElseIf iState = States.Number40 Then
    'Code...
    End If
    End Sub
    Private Sub Command1_Click()
    Call Test(States.Number30)
    End Sub
  8. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    soweit so gut...
    allerdings habe ich das problem, dass wenn ich call test( schreibe kein auswahlfenster erscheint(soetwa wie bei boolean)
    ist da noch immer was falsch oder hab ich was falsch gemacht?
  9. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Was soll denn da für ein Auswahlfenster kommen?

    Du brauchst doch nur folgendes schreiben:
    Call Test(States.Number40)
  10. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    ich versuchs nochmal zu erklären


    zordy schrieb:
    ne ich mein wenn ich z.B. hab

    Public Sub start_auto()
    Call auto(False,10)

    End sub
    Public Sub auto(ByVal AutoRange As Boolean, ByVal Range As Double)
    ....

    im obenangeführten code kann man in der public sub start_auto im call beim ersten zwischen False und True wählen. Da erscheinen zwei möglichkeiten.
    Gibt es einen befehl, bei dem ich diese Auswahlmöglichkeiten selbst treffen kann?
    Das z.B. beim 2. die Auswahl hast zwischen 20 und 30.

    wie ich in dem post schon geschrieben habe...
    ich kann den public sub aufgrund der parameter nicht starten daher schreibe ich
    Public Sub start_auto()
    Call auto(False,10)

    End sub

    die den auto sub aufruft. Wenn ich call auto(
    schreibe dann kann ich die parameter festlegen
    wenn im public sub auto z.B. autorange as boolean gestanden ist
    dann würde jetzt ein auswahlfenster erscheinen das mir True und False anzeigt.
    Hier sollte nun das eigens definierte auswahlfenster auch bei meiner funktion erscheinen. Wie mach ich das?
  11. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Meinst du vielleicht das automatische Auflisten von möglichen Optionen?

    Das sieht dann so aus:
    http://cbhp.lima-city.de/lima-city/VB6_Enum_1.png
    http://cbhp.lima-city.de/lima-city/VB6_Enum_2.png

    Falls das bei dir nicht so eingezeigt wird, musst du es unter Extras / Optionen aktivieren:
    http://cbhp.lima-city.de/lima-city/VB6_Optionen.png
    (Menüpunkt "Mitglieder / Elemente automatisch auflisten")
  12. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    danke soweit funktionierts erstmal...
    Nun hab ich aber folgendes Problem:
    Ich möchte gerne in meinen übergabe Parametern folgendes schreiben: "AC"
    VB scheint irgendetwas gegen "" zu haben...
    wenn ich das Range20 = 20
    durch "AC" = 1 ersetze dann bekomme ich sofort die rote schrift!
    gibt's da eine möglichkeit
  13. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Du kannst es doch auch ohne Anführungszeichen schreiben:

    Enum Optionen
    AC = 1
    AD = 2
    AE = 3
    End Enum

    Oder wolltest du statt den Zahlen einen Text übergeben?
    Das ist erst ab VB 7 möglich, darunter noch nicht.
  14. Autor dieses Themas

    zordy

    Kostenloser Webspace von zordy, auf Homepage erstellen warten

    zordy hat kostenlosen Webspace.

    ich wollte aber einen string übergeben...
  15. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Das ist, wie schon gesagt, in VB 6 noch nicht möglich. Du kannst dir dazu aber selbst Hilfsprozeduren schreiben.

    Beispiel:

    Option Explicit
    
    Private Enum Ranges
        AC = 1
        AD = 2
        AE = 3
    End Enum
    
    Private Function RangeToString(ByVal MyRange As Ranges) As String
        Select Case MyRange
            Case Ranges.AC
                RangeToString = "AC"
            Case Ranges.AD
                RangeToString = "AD"
            Case Ranges.AE
                RangeToString = "AE"
            Case Else
                MsgBox "Fehler: Es wurde kein passender Eintrag gefunden."
        End Select
    End Function
    
    Private Function StringToRange(ByVal MyString As String) As Ranges
        Select Case MyString
            Case "AC"
                StringToRange = Ranges.AC
            Case "AD"
                StringToRange = Ranges.AD
            Case "AE"
                StringToRange = Ranges.AE
            Case Else
                MsgBox "Fehler: Es wurde kein passender Eintrag gefunden."
        End Select
    End Function
    
    Private Sub Auto(ByVal AutoRange As Boolean, ByVal Range As Ranges)
        Dim strRange As String
        strRange = RangeToString(Range)
        MsgBox "Vorher: " & Range & " - Nachher: " & strRange
        'Code...
    End Sub
    
    Public Sub Start_Auto()
        Call Auto(False, Ranges.AC)
        'oder:
        Call Auto(False, StringToRange("AC"))
    End Sub



    Startprozedur ist die Start_Auto()
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!