Willkommen auf Planet-Liebe

diskutiere über Liebe, Sex und Leidenschaft und werde Teil einer spannenden Community! :)

jetzt registrieren
  • 6 Januar 2005
    #1

    Brauche Hilfe bei Visual Basic!

    Seid gegrüßt. Kommende Woche schreiben wir in Programmieren eine Klassenarbeit, dabei müssen wir ein Programm erstellen, d. h. wir müssen lediglich die Codierung auf's Papier bringen, also keine PC-Anwendung.
    Da unser Lehrer der Administrator der Schule und gleichzeitig ein riesen Arschloch ist, hab ich jetzt ziemlich wenig Stoff mit dem ich lernen könnte und dem Unterricht dieses Affen zu folgen, fällt mir auch merklich schwer. Deshalb meine Frage. Könntet ihr mir ein paar Seiten nennen auf denen VB gut erklärt wird, so mit Aufzählungen von Variablen und dem ganzen Krimskrams. Seiten auf niedriegem Niveau werden bevorzugt, bin in VB ein absolutes Greenhorn.
     
  • Nicht die richtige Frage? Hier gibt es ähnliche Themen:
    1. Formen der Visualisierung
  • Marshmallow
    Verbringt hier viel Zeit
    89
    91
    0
    Single
    6 Januar 2005
    #2
    Was musst du denn wissen? Leider fehlt mir die Zeit, die 1.000-Seitigen Bücher zu scannen, aber was willst du wissen? (Eigentlich mach ich seit Jahren kein VS mehr, aber Programmieren-Basics werde ich noch erklären können)
     
  • Scheich Assis
    Verbringt hier viel Zeit
    974
    113
    51
    vergeben und glücklich
    6 Januar 2005
    #3
  • 6 Januar 2005
    #4
    Schwer zu sagen. Ich bin eben totaler Anfänger. Mach das ganze erst seit September 2004. Ich hau einfach mal die Codierung von 'ner Aufgabe rein, die wir vor den Ferien gemacht haben. Ich hoffe du kannst dir das ganze ohne Form vorstellen.
    Option Explicit
    Dim m_zahl, m_multi, m_produkt as Integer

    Private Sub prz_berechnen
    m_produkt = 0
    m_multi = Int(m_von.text) - 1
    do while m_multi < Int(m_bis.text)
    m_multi = m_multi + 1
    m_produkt = m_multi*m_zahl
    lf_list. AddItem Format(m_multi,"###")+" * " + Format(m_zahl,"##
    #")+ "=" + Format(m_produkt,"###")

    Loop

    bs_neu.setfocus

    End Sub


    Private Sub bs_ende_click
    End
    End Sub

    Private Sub bs_neu_click()
    if_zahl.text = ""
    m_von.text = ""
    m_bis.text = ""
    lf_list.clear
    m_von.setfocus
    End Sub

    Private Sub Form_Load()
    tf_zahl.text = ""
    tf_zahl.tabindex = 0
    m_von = ""
    m_von.tabindex = 0
    m_bis = ""
    m_bistabindex = 1
    End Sub

    Private Sub tf_bis_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    If IsNumeric(tf_bis.text) Then
    m_bis = Int(tf_bis.text)
    tf_zahl.setfocus
    Else
    Msgbox "Nur Zahlen eingeben", 48, "Fehler"
    tf_bis = ""
    TF_bis.setfocus
    End If
    End If
    End Sub

    Private Sub tf_von_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    If IsNumeric(tf_von.text) Then
    m_von = Int(tf_von.text)
    tf_bis.setfocus
    Else
    Msgbox "Nur Zahlen eingeben", 48, "Fehler"
    tf_von = ""
    tf_von.setfocus
    End If
    End If

    End Sub

    Private Sub tf_zahl_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    If IsNumeric(tf_zahl.text)Then
    m_zahl = Int(tf_zahl.text)
    prz_berechnen
    bs_neu.setfocus
    Else
    Msgbox "Nur Zahlen eingeben", 48, "Fehler"
    tf_zahl.text = ""
    tf_zahl.setfocus
    End If
    End If
    End Sub
     
  • Mr. Poldi
    Mr. Poldi (38)
    Meistens hier zu finden
    3.368
    133
    99
    Verwitwet
    6 Januar 2005
    #5
    Ekelhafter Code :zwinker:
    Was möchtest du denn dazu wissen?
     
  • 6 Januar 2005
    #6
    Ich würde gerne wissen was das bedeutet. Wie gesagt, ich steig da absolut nicht durch. Ich sitz im Unterricht und schreib mir die ganzen Codierungen ab. Was ich da allerdings abschreibe bleibt mir ein Rätsel.
     
  • Mr. Poldi
    Mr. Poldi (38)
    Meistens hier zu finden
    3.368
    133
    99
    Verwitwet
    6 Januar 2005
    #7
    Ah, OK. Also nehmen wir das ganze mal auseinander (ich kann kein Wort VB aber passt schon :zwinker:)

    Code:
    Dim m_zahl, m_multi, m_produkt as Integer
    
    Hier werden 3 Variablen m_zahl, m_multi und m_produkt vom Typ Integer deklariert.
    Integer werden für Ganzzahlen verwendet und sind auf heutigen Systemen 32 Bit groß.

    Code:
    Private Sub prz_berechnen
    
    Dies ist der Kopf einer Funktion mit dem Namen prz_berechnen.
    In VB werden Funktionen als Subs bezeichnet.

    Code:
    m_multi = Int(m_von.text) - 1
    
    m_von ist vmtl. der Name eines Texteingabefeldes. Dieser Code weist der Variablen m_multi die Zahl in diesem Feld abzüglich 1 zu.
    Da ein Texteingabefeld Text enthält (und keine Zahl) findet mit Hilfe von Int() eine Typumwandlung statt.

    Code:
    do while m_multi < Int(m_bis.text)
    m_multi = m_multi + 1
    m_produkt = m_multi*m_zahl
    lf_list. AddItem Format(m_multi,"###")+" * " + Format(m_zahl,"##
    #")+ "=" + Format(m_produkt,"###")
    Loop
    
    Dies ist eine Schleife - der eingetliche Arbeitsteil von prz_berechnen.
    Die Schleife wird solange ausgeführt wie der Inhalt von m_multi kleier ist als die Zahl im Textfeld m_bis (man beachte wieder die Typumwandlung mit Int()).
    Die Schleife macht nun folgendes:
    m_produkt wird berechnet als m_multi * m_zahl;
    Danach wird das berechnete Produkt in das Listenfeld mit dem Namen lf_List geschrieben.
    Unz war als Text
    m_multi * m_zahl = m_produkt,
    Da ein Listenfeld nur Texst aufnimmt, diese Variablen aber wie oben erwähnt Integer (Ganzzahlen) sind müssen sie entsprechend formatiert werrden. Dafür ist Format() zuständig.

    Code:
    bs_neu.setfocus
    Irgendeinem Control auf dem Form welches auf den Namen bs_neu hört wird der Eingabefocus zugewiesen (ist vmtl. ein Button).

    Code:
    End Sub
    Hier endet prz_berechnen

    Die restrlichen Funktionen dienen der Initialisierung der Eingabefelder und der Fehlerüberprüfung der Eingabe (damit da auch wirklich nur Zahlen drin stehen).
     
  • I)4wN
    I)4wN (30)
    Verbringt hier viel Zeit
    19
    86
    0
    vergeben und glücklich
    7 Januar 2005
    #8
    Kleine Korrektur:

    Bei der oben stehenden Deklaration wird nur m_produkt als Integer (Zahl) dekladiert, m_zahl und m_multi hingeben sind "Variants".

    Wenn alle 3 Variablen als Integer dekladiert werden sollen, müsste es so aussehen:

    Code:
    Dim m_zahl as Integer, m_multi as Integer, m_produkt as Integer
    
    Normalerweise, macht es aber keinen Unterschied, aber nur so zur Verständlichkeit *klugscheiß*.

    @Kirby:
    Schon gut, kannst ja kein VB :engel:
     
  • Mr. Poldi
    Mr. Poldi (38)
    Meistens hier zu finden
    3.368
    133
    99
    Verwitwet
    7 Januar 2005
    #9
    VB hat ne bescheuerte Syntax ^.^

    Ist doch total umständlich wenn man bei jeder Variablen den Typ angeben muss.
    Naja, what shells.
     
  • Trogdor
    Trogdor (41)
    Verbringt hier viel Zeit
    473
    101
    0
    nicht angegeben
    7 Januar 2005
    #10
    Bist Du Dir da 100% sicher? Ich meine mich aus meinen Basic-Tagen zu erinnern, dass man mehrere durch Komma getrennte Variablen gemeinsam deklarieren kann. Und VB dürfte nicht so viel an den Basic-Konventionen gedreht haben. Zumal es auch irre dämlcih wäre.
     
  • 7 Januar 2005
    #11
    Ich mein auch, dass man durch Komma getrennte Varibalen gemeinsam deklarieren kann. Naja, egol.
    Danke jedenfalls für die Hilfe.
     
  • AndreR
    Gast
    0
    8 Januar 2005
    #12
    Also in VB werden gleichartige Variablen mit Kommas deklariert.
    Mit INteger-Werten ist das schlecht zu erklären (da der INHALT der Variable gleich ist, ob Integer oder Variant, man kann es eh umformatieren), machen wirs mit Objektvariablen: wenn ich schreibe

    dim rs, rs2, rs3 as recordset

    dann werden rs UND rs2 UND rs3 also Objektvariablen vom Typ Recordset deklariert und nicht das rs und rs2 mit einem mal Variants sind. Wäre dem so, müsste bei (ADO)

    set rs = db.openrecordset("SELECT...."

    stets ein Fehler kommen....


    Okay zum Code, ohne Formular etwas schwierig,deshalb Mutmaßungen:

    es gibt 3 Eingabefelder (tf_von - tf_bis - tf_zahl) und eine ComboBox namens If_List

    wenn prz_Berechnen aufgerufen wird:
    - der Wert m_produkt wird 0 gesetzt
    - m_multi wird auf den Wert m_von - 1 gesetzt (warum eigentlich?)
    - dann eine Schleife, sooft druchführen bis diese Bedingung erfüllt ist: m_multi < m_bis
    - m_multi inkrementieren (+1 Rechnen)
    - m_produkt = m_multi*m_Zahl
    - Eintrag in Comboox einen String: "Multi * Zahl = Produkt"

    - fertig

    was das tun soll ist mir allerdigns schleierhaft, letzten Endes erhält man eine Liste nach der ARt (man nehme 5 Durchläufe und die M_zahl = 5):
    001 * 005 = 005
    002 * 005 = 010
    003 * 005 = 015
    004 * 005 = 020
    005 * 005 = 025

    Ich nehme an, die Übung soll demonstrieren was man mit Schleifen machen kann...
    Also ohne Sinn und Verstand.
    Wenn du Fragen hast kannst du dich auch gern per PN an mich wenden, ich programmiere (e)VB[A] von Berufswegen aus so ziemlich den ganzen Tag

    Übrigens: Namenskonventionen sind ne Feine Sache, erleichtern das für den Außenstehenden ungemein (z.B. sollte ne ComboBox nicht if_list sonder cboIf_list heißen, oder nicht m_zahl sondern iM_Zahl weil Integer, nur so als Tipp am Rande)

    Gruß
    André
     
  • hellgrau
    Gast
    0
    8 Januar 2005
    #13
    Könnten die zarten Anfängen vom Erathostenes Sieb sein.
    Wäre allerdings einfach, wenn man die Zahlen nicht von Hand reinschreiben
    müsste,
    und wenn der Wertebreich in nem Feld stehen würde.

    ODER :
    "prz" steht für Produktzahlen oder sowas.
    Dann isses wirklich nur ne ziemlich langweilige "Demo".
     

  • jetzt kostenlos registrieren und hier antworten
    die Fummelkiste