1. Nexgam Portal
  2. Forum
    1. Unerledigte Themen
    2. Aktive Themen der letzten 24h
  3. Dashboard
  4. Mitglieder
  5. Patreon
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. neXGam - Forum
  2. Forum
  3. Channels
  4. PC & Mac

Visual Basic Frage

  • Saldek
  • 10. September 2008 um 18:52
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 10. September 2008 um 18:52
    • #1

    Ich möchte mit Visual Basic 6 folgendes umsetzen, nur habe ich von VB leider noch keine Ahnung :tooth:

    Ich habe zwei ComboBoxen. In der ersten wird ein Material ausgewählt, in der zweiten ComboBox die Materialstärke. Beispiel:

    ComboBox 1 ComboBox2
    Kunststoff --> Stärke 0,5 1,5 4mm
    Aluminium --> Stärke 0,5 1,8 2,2mm
    Polystyrol …

    1. Es sollen die Inhalte in ComboBox2 (Stärke) abhängig vom gewählten Material angezeigt werden. Wähle ich bspw Aluminium, soll nur 0,5 1,8 und 2,2mm angezeigt werden (nicht z.B. 4mm). Klar könnte ich auch alles in ein einziges DropDown Menü schreiben, nur geht’s mir in erster Linie um die Übung. Vielleicht könnte man das gut mit einem Lost- bzw GetFocus umsetzen?!
    Hinter jeder Kombination soll außerdem ein Preis (oder eine Kategorie) gespeichert sein, auf den global zugegriffen werden kann.

    Habe die ComboBox1 erstmal so gefüllt:

    TextboxPrivate Sub Form_Load()
    Combo1.AddItem "Kunststoff "
    Combo1.AddItem "Aluminium"
    Combo1.AddItem "Polystyrol"
    End Sub

    2. In einer Textbox möchte ich die Stk-Zahl eingeben, die dann sofort mit dem hinterlegten Preis addiert und in einer dritten Textbox ausgegeben wird:
    Preis pro Stk: x
    Preis pro m²: y
    usw

    Weiß jemand wie das umsetzbar wäre?

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 10. September 2008 um 19:55
    • #2

    Hab kein VB6 hier, aber gibt es dort nicht auch sowas wie Events? D.h. du könntest bei 2) z.B. TextBox.OnTextChange nutzen (oder etwas, das so ähnlich heißt) und bei 1) Combo1.OnChange oder ähnliches.

    Sorry, kann dir leider nicht genauer helfen, aber vielleicht findest du ja was in der Hilfe dazu.

    • Zitieren
  • lu3mm3l
    Erleuchteter
    Beiträge
    3.152
    • 10. September 2008 um 20:50
    • #3
    Zitat

    Original von Krelian
    Hab kein VB6 hier, aber gibt es dort nicht auch sowas wie Events? D.h. du könntest bei 2) z.B. TextBox.OnTextChange nutzen (oder etwas, das so ähnlich heißt) und bei 1) Combo1.OnChange oder ähnliches.

    Joa, exakt so. Du setzt die 2te Combobox auf deaktiviert und schreibst (wie du es ja schon machst) im Form Load Ereignis die Werte in die erste. Im OnChange (o.Ä., hab schon länger nichts mehr in VB gemacht) Event fragst du per Select Case ab was ausgewählt wurde, schreibst die entsprechenden Werte in die Combobox 2 und aktivierst sie. Sollte eigentlich ganz einfach sein :)

    Hier mal ein (Real)Basic Beispiel was ich meine:

    Code
    Form1.Open()
      ComboBox1.AddRow("Testwert 1")
      ComboBox1.AddRow("Testwert 2")
      ComboBox1.AddRow("Testwert 3")
    
    
    Combobox1.Change()
      
      ComboBox2.DeleteAllRows() 'Alle Werte löschen falls noch welche vorhanden sind
      
      Select Case ComboBox1.Text 'Text aus der ersten Combobox auslesen
      Case "Testwert 1"
        ComboBox2.AddRow("Testwert 1")
      Case "Testwert 2"
        ComboBox2.AddRow("Testwert 2")
      Case "Testwert 3"
        ComboBox2.AddRow("Testwert 3")
      end select
      
      ComboBox2.Enabled = true 'Combobox aktivieren
    Alles anzeigen

    Wie gesagt, das ist in Realbasic, in VB heißen die die Ereignisse sowie die Funktionen der Combobox anders aber jetzt weißt du wies funktioniert :)

    Zitat

    Original von Saldek
    Hinter jeder Kombination soll außerdem ein Preis (oder eine Kategorie) gespeichert sein, auf den global zugegriffen werden kann.

    Wenn ich dich hier richtig verstehe kannst du dir eine Menge Tipparbeit ersparen wenn du dir eine Datenbank anlegst und die Daten dort ausliest. Als Beispiel:

    Code
    Artikel		Stärke		Preis
    Aluminium	0,5		2,50
    Aluminium	1,8		6,70
    Aluminium	2,2		9,80
    Stahl		0,7		2,90
    Stahl		1,8		7,00

    Wenn dein Nutzer nun nämlich Aluminium auswählst sendest du einfach eine Datenbankabfrage welche Stärken bei Alu erhältlich sind und schreibst diese dann direkt in die 2te Combobox. Die Preise hast du nun ja auch. So musst du nur dieses eine Event schreiben und musst nicht immer den Code ändern wenn neue Stärken/Materialien & Preise hinzukommen. Wenns nur zur Übung ist, ist es ja egal, soll die Anwendung jedoch benutzt werden dann überleg dir das mit der Datenbank. Ist in Access ja schnell gemacht :)

    :blabla:

    2 Mal editiert, zuletzt von lu3mm3l (10. September 2008 um 21:12)

    • Zitieren
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 11. September 2008 um 18:57
    • #4

    danke erstmal für die Antworten

    In erster Linie will ich nur üben. Und VB ist für den Programmiereinstieg halt einfach ideal und ist imo auch optimal um funktionale Anwendungen erstellen zu können. Allerdings versuche ich die Übung halt gleich mit etwas Nützlichem verbinden zu können und will deshalb gleich an einem brauchbaren Prog arbeiten. Es ist ein simples Kalkulationsprogramm das ich bisher über eine überladene Excel-Tabelle realisiert hatte.

    Aaalso... so richtig bekomme ich's nicht hin ;) Die Verknüpfung der ComboBoxen funktioniert zwar, nur leider werden die Inhalte in der zweiten ComboBox nur angezeigt...anwählen kann ich sie aber nicht.

    - Starte ich das Programm ist die erste Box aktiviert und Caption "Material wählen", die zweite ist deaktiviert (Caption "Stärke")
    - wähle ich ein Material aus, dann wird die zweite Box mit den richtigen Inhalten aktiviert, allerdings kann ich diese nicht anwählen. Außerdem verschwindet Caption sobald ich das Drop Down Feld öffne...

    Private Sub Form_Load()
    Combo1.AddItem "Kunststoff 1,5mm"
    Combo1.AddItem "Aluminium 1,5mm"
    Combo1.AddItem "Polystyrol"
    End Sub

    Private Sub Combo1_Click()
    Combo2.Clear
    Select Case Combo1.Text
    Case "Kunststoff Transply 1,5mm"
    Combo2.AddItem ("Test1")
    Case "Aluminium 1,5mm"
    Combo2.AddItem ("Test2")
    Case "Polystyrol"
    Combo2.AddItem ("Test3")
    End Select

    Combo2.Enabled = True
    End Sub

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 12. September 2008 um 11:26
    • #5

    Ich verstehe das Problem mit "Caption verschwindet" nicht so ganz. Ich würde aber die Combo-Box nicht mit Text, sondern mit dem Index abfragen. Eigentlich sollte der Code auch gar nicht funktionieren, wenn du das erste auswählst, da du in der Combobox "Kunststoff 1,5mm" stehen hast, aber auf "Kunststoff Transply 1,5mm" abfragst.

    Ohne Visual Basic kann ich dir aber nicht weiter helfen, tut mir leid.

    • Zitieren
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 12. September 2008 um 12:40
    • #6

    Werde das mit dem Index mal probieren.
    Das mit Kunststoff ist nicht wirklich ein Problem. Als ich den Ausschnitt ins Forum kopierte war ich gerade dabei weitere Kunststoff-Varianten einzufügen.

    • Zitieren
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 12. September 2008 um 16:45
    • #7

    Hm also so richtig bringts das nicht so ein Kaltstart ins VB-programmieren.

    Werde vielleicht doch erst auf ein Buch zurückgreifen müssen. Nur leider sind die immer so trocken. Kennt denn jemand ein gutes Buch?

    a) mit einfachen Worten von Beginn an erklärt
    b) nicht zu dick
    c) vielen Praxisbeispielen oder einem Projekt

    und möglichst über VB6...da ich das ganze neumodische 2008 Zeugs nicht hier habe. Wichtig ist vorallem der VB Syntax. VB richtig nicht interpretieren wenn regelmäßig Syntax nicht entspricht ;)

    Am besten wäre so ein Buch wie LittleBoxes bei CSS. Das hat richtig Spaß gemacht, ganz große Lernliteratur.

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 12. September 2008 um 17:25
    • #8

    Das "neumodische Zeug" nicht da zu haben, ist aber keine Ausrede, seit es die kostenlosen Express-Editionen von Visual Studio gibt ;)

    http://www.microsoft.com/Express/

    Ich würde dir wirklich empfehlen, auf eine von diesen umzusteigen, vielleicht Visual Basic .NET, der Einstieg sollte dir nicht allzu schwer fallen. Dazu gibt es auch massenhaft Literatur und Tutorials im Internet.

    • Zitieren
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 12. September 2008 um 18:05
    • #9

    http://www.amazon.de/Visual-Basic-2…21234867&sr=8-5

    Kennt das jemand? Angeblich soll Kofler ja das beste VB Buch geschrieben haben.

    Ansonsten weiß ich nicht ob sich der Umstieg lohnt auf das neueste. Gibt es große Unterschiede zwischen echter und Express-Version? Wäre ja kein Problem VB2008 zu kaufen, würde die Firma mir sicher bezahlen :cool:

    Ich denke halt nur das es für die Grundlagen keine Rolle spielt ob VB6 oder 2008.

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 12. September 2008 um 18:23
    • #10

    Die Express-Editionen sind eingeschränkt im Umfang. Hier gibt's ein paar Infos dazu: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express

    Die anderen Versionen gibt es nicht einzeln zu kaufen, dann musst du schon das komplette Visual Studio kaufen. Und dann würde ich gleich zu C# raten. Imho die schönere Sprache ;)

    Ich bin der Ansicht, dass du ruhig was aktuelles lernen solltest, wenn du die Wahl hast. Theoretisch ist VB6 für den allgemeinen Einstieg OK, aber es ist nun mal veraltet.

    • Zitieren
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 12. September 2008 um 22:06
    • #11

    Naja ich kenne zwar C# nicht aber so C allgemein oder C+ soll dann doch ne Ecke abstrakter sein. VB ist vielleicht nicht so schick, aber angeblich doch wesentlich einfacher zu erlernen.

    Aus mir wird eh nie ein begnadeter Programmierer, dafür bin ich nicht technisch genug. Aber gerade die ein oder andere Anwendung erstellen zu können, insbesondere im Zusammenhang mit Datenbanken, werde ich im Job wie sich bereits jetzt abzeichnet doch ziemlich oft gebrauchen.

    Leider habe ich wegen Studium kaum Zeit mich in 500-seitige Bücher zu lesen. Und dann erstmal das Richtige finden..

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 13. September 2008 um 10:50
    • #12

    Für Leute, die ab und zu mal was entwickeln müssen sind die Express-Versionen schon ausreichend, es gibt sogar den SQL Server als Express-Version (der wird auf Wunsch auch bei der Installation von einer der anderen Versionen mitinstalliert).

    Hier gibt es ein paar Bücher, die du dir kostenlos online anschauen kannst: http://www.galileocomputing.de/openbook/vb_net/
    http://www.galileocomputing.de/openbook/einstieg_vb_2008/

    Einmal editiert, zuletzt von Krelian (13. September 2008 um 10:50)

    • Zitieren
  • Saldek
    Erleuchteter
    Beiträge
    6.067
    • 13. September 2008 um 11:17
    • #13

    Danke für die Links. Habe mir gestern ein Buch bestellt und arbeite jetzt am WE mit diesem kleinen Tutorial: http://www.vb-seminar.de/

    Möchte da jetzt auf jeden Fall dran bleiben

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 13. September 2008 um 11:47
    • #14

    Wünsche dir viel Erfolg. Kannst ja irgendwann mal hier rein schreiben, wie es läuft.

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 13. September 2008 um 20:22
    • #15
    Zitat

    Original von Krelian
    Für Leute, die ab und zu mal was entwickeln müssen sind die Express-Versionen schon ausreichend, es gibt sogar den SQL Server als Express-Version (der wird auf Wunsch auch bei der Installation von einer der anderen Versionen mitinstalliert).

    Hier gibt es ein paar Bücher, die du dir kostenlos online anschauen kannst: http://www.galileocomputing.de/openbook/vb_net/
    http://www.galileocomputing.de/openbook/einstieg_vb_2008/

    Hab auch vor kurzem mit C# und dem Galileo-Buch angefangen. Das liest sich echt gut. :)
    Hab übrigens auch die Professional Version von Visual Studio, da ich mir die über die Uni ziehen konnte...

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Krelian
    Fortgeschrittener
    Beiträge
    360
    • 13. September 2008 um 21:52
    • #16

    Leider bietet meine Uni sowas nicht an, habe aber immerhin die 2005er Version durch eine Microsoft-Aktion bekommen können. Für 2008 muss ich mit den Express-Versionen vorlieb nehmen.

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 14. September 2008 um 15:30
    • #17

    Bei uns gibts wohl alle MS-Programme, bis auf Office, zum runterladen. Aber über 3 GB mit 1000er DSL dauert dann doch nen bißchen länger...

    Visual Studio ist auch ne klasse Entwicklumgsumgebung, wenn man Programmieren lernen will und gefällt mir auch um einiges besser als Eclipse, welche wir in der Uni bei Java genutzt haben.
    Ich bin zwar erst bei OOP, aber die Klassenbibliothek vom C# scheint auch nicht schlecht zu sein. Ich muss aber leider noch ne Seminararbeit schreiben, deswegen komme ich eher langsam vorran. :(

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
Werbung

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™