tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
707
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Hallo Experten !

    Ich habe schon viele Bekannte und Verwandte gefragt, die sich so ein bisschen auskennen.
    Aber alle verstehen nicht, was ich von denen will. Du erklärst den das, und die schauen dich an wie ein Auto, nur nicht so schnell.

    Dabei möchte ich gerne einen Zahlenwert von Form1, in Form2 bearbeiten können, um den Wert dann in Form3, dient lediglich zum Anzeigen der Labels und was man Besitzt usw.

    Beispiel :

    In Form1 Habe ich ein Grundstück.
    In Form2 Sind Blumensamen, ohne denen ich keine Blumen pflanzen kann.
    Wenn ich in Form2 Blumensamen gekauft habe, kann ich erst in Form1 eine Blume pflanzen.
    Die Blumensamen sollen dann im Form3 (Lager) auftauchen. Die Blumen kann man sobald sie ausgewachsen sind Ernten oder einfach stehen lassen. Die Blumen sollen auch beim ernten in Form3 (Lager) auftauchen.

    Sobald man genügend Geld oder ein bestimmtes Level erreicht hat, kann man dann Tiere oder schönere und Speziellere Blumen kaufen.

    Alles was ich wissen muß, ist, wie kann man eine Zahl in Form 2 mit " rüber " nehmen, wo es dann auch für alle anderen Forms, (und es würden noch sehr, sehr viele hinzukommen ;-D )
    zu greifbar / veränderbar wäre.

    A) Jetzt ohne Schei**, ich zu meinem Cousin, Mister ich weiß sowieso alles besser Typ hin, und sag zu dem:

    Wie kann ich in Form1 den ich mit einem Button und einem Label belegt habe, einen Wert zu Form2 schicken, der dann im Form2.Label1.Text auftaucht, mit meinem Form2.Button1 verändern, und diese Veränderung Zeitgleich in Form1 verändert wird. Wie mach ich das ?

    Mund auf, Augen weit auf...

    Zu meinem Projekt, Ich möchte für mehrere Form's, jeweils eine Blume erstellen.
    (Kann man auch anders machen, Ein Form mehrere Blumen) Ich will das sogar zum Schluss so machen, das jedes Blumen-Form jede Blume Pflanzen kann. Dazu muß ich aber wissen, wie man:
    Von allen Form's, auf mehrere Werte, die nur Zahlen sind, zugreifen kann, so wie in A) beschrieben.

    Bitte demütigst um Eure Hilfe.
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Visual Basic 2008 Von Form zu Form übertragen.-formzuform.jpg  
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Ist aber nicht wirklich ein Tutorial, oder? Die Inbox dient zum Vorschlagen von Artikel/Tutorials. Fragen bitte im Forum stellen
    (verschoben)
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    K, ich bin grad vom Training zurück und habe deinen Text nur überflogen.
    Ich bezieh mich jetzt mal nicht auf die Blumen sondern ganz einfach auf vorgehensweisen wie du Werte weitergeben könntest.

    Zuerst FormA hält Daten die an FormB sollen.
    Da wäre das das einfachste dem Constructor dies als Parameter mit zugeben.

    Hab mal kurz gegoogelt unter VB müsste der Std. Construct wie folgt aus sehe

    Code vbnet:
    1
    2
    3
    
    Public Sub New()
       ...'
    End Sub

    Parameter kannst du ihm nun wie folgt geben
    Code vbnet:
    1
    2
    3
    
    Public Sub New(ByVal value As Integer)
       ...'
    End Sub

    In diesem Fall übergebe ich meinem Formular einen Integerwert.

    Code vbnet:
    1
    
    Dim dlg As New FormB(10)

    Das sollte erstmal reichen, spiel damit rum und schau das du den übergebenen Wert weiter verarbeiten kannst.
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  4. #4
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Danke für die schnelle Antwort (^-_^!)

    Also müßte ich das denn so schreiben, meine Werte, habe ich dann auch gleich genommen:


    Code :
    1
    2
    3
    4
    5
    6
    7
    
    FormA :
     
    Public Sub Werteweitergeben(ByVal value As Integer)
    Dim Muenzen As New FormB(10) 
    Dim Blumensamen As New FormB(1) 
    Dim BlumeA As New FormB(0) 
    End Sub

    Mhmm... Aber wie bekomme ich denn den neuen Wert von FormB wieder wieder zu FormA.
    Oder wenn Du möchtest, kann ich mir das auch selbst nachschlagen.
    Wo bei Google hast Du's denn gefunden?
     

  5. #5
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    Das war nicht direkt auf deine Frage bezogen, ich hab mehr wegen der Syntax gegoogelt.
    Hast du dich schon mit Eigenschaften beschäftigt?
    Du könntest in FormB Eigenscahften bereitstellen die du in Forma abfragst.
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  6. #6
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Nee, ich denke abfragen wäre zu wenig.

    Denn ich habe ja vor in FormA einen Level zu erreichen, der dann FormB freischaltet.
    In FormB will ich dann eine neue Blumenart anbauen, die besser und schöner Aussieht wie zum Beispiel Orchideen. Die in meinem Lager anzuzeigen ist auch nur halb so wild.

    Bis hier hat es nichts mit meiner Frage zu tun.

    Aber jetzt kommts. Ich will die Orchidee ja verkaufen! Und da brauche ich Deine Hilfe.
    Denn ich muß ja dem Geld von FormB 200€, FormA hinzufügen.
    Also wie kann ich FormA.muenzen in FormB 200€ hinzufügen?

    Wenn ich das weiß, kann ich auch einen eigenen Shop im Spiel anbauen.
    Denn zur Zeit hängt der rechts neben der Tulpe. Sieht nicht so toll aus
     

  7. #7
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    hi,
    also ich hab das jetzt auch mal überflogen...
    erst mal möchte ich dazu sagen ich bin noch ziemlich neu in vb aber du könntest es so probieren:
    du hast eine formA und FormB (Wenn schon alle diese namen benutzen ).
    jetzt hast du sagen wir mal 100 euro auf der formA und möchtest 10 euro auf die FormB übertragen.
    Dafür gibt es eigentlich viele möglichkeiten. Du könntest in der FormA die Methode mit rein nehmen, in FormB oder ein neues Module anlegen in das du die Methode schreibst.
    Mal als beispiel: Wenn du die Methode in FormA rein schreibst:
    du brauchst in der FormA dann ein Objekt von der FormB:
    Dim b As FormB

    dann hast du eine Mehtode die die FormB als PaRameter mit bekommt

    Public Sub überweisen(byRef formB As FormB)
    b = formB
    b.guthabenErhoehen(10)
    guthabenSenken(10)

    End Sub

    die Mehtode guthabenSenken (diese Methiode steht ebenfals in FormA) sieht dann so ähnlich aus:

    guthabenSenken(ByRef wert As Integer)

    guthaben = guthaben - wert

    End Sub

    und die Mehtode guthabenErhoehen (diese Methode steht in der FormB) sieht so ähnlich aus:

    guthabenErhoehen(ByRef wert As Integer)

    guthaben = guthaben + wert

    End Sub

    somit hast du jetzt 10€ guthaben von FormA nach FormB "überwiesen".

    Hoffe ich hab dich richtig verstanden und du meintest sowas in die art...
     

  8. #8
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Ja, ja ziemlich neu in vb ?
    Dafür haust Du aber ganz tolle Sachen raus!

    Es ist zwar anders rum von FormB zu FormA, aber das ist ja gehüpft wie gesprungen.
    Ob ich jetzt von A nach B überweise oder anders rum

    Ich werde ersteinmal ein ganz neues Projekt schreiben, damit ich immer ein Beispiel habe und wenn ich es geschafft habe und es auch noch klappt, schreibe ich natürlich Euch und Poste es als super geiles Beispiel hier ins Forum.

    Danke erstmal, hoffentlich bis bald (^-_^!)
     

  9. #9
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Halt, stop, mir ist da was aufgefallen...
    Wenn ich jetzt statt den beiden 10nern,
    also:

    b.guthabenErhoehen(10)
    guthabenSenken(10)

    b.guthabenErhoehen(muenzen)
    guthabenSenken(muenzen)

    einsetze, müßte er doch in beiden Richtungen
    + und - nehmen können. Jedenfalls bis der Wert muenzen verbraucht ist oder ****?
     

  10. #10
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    bin mir jetzt nicht sicher ob ich dich richtig verstanden habe aber glaube das stimmt so nicht.
    ich würde dir eh empfehlen nicht eine zahl in die klammern zu schreiben sondern wie du schon in deinem letzten beispiel eine variable die du beliebig verändern kannst(weil du ja sonst immer nur den wert um 10 ändern könntest).

    du willst also beliebig von FormA nach FormB und von FormB nach FormA geld oder Münzen "überweisen" oder?
    wenn ja dann kannst du ja in beide Forms beide Mehtoden rein nehmen:

    guthabenSenken(ByRef wert As Integer)

    guthaben = guthaben - wert

    End Sub



    guthabenErhoehen(ByRef wert As Integer)

    guthaben = guthaben + wert

    End Sub

    Und je nach dem ob du von a nach b überweisen willst, rufst du die überweisen-Methode dementsprechend auf.

    Von a nach b:
    Public Sub überweisen(byRef formB As FormB, ByRef wert As Integer)
    b = formB
    b.guthabenErhoehen(wert)
    guthabenSenken(wert)

    End Sub

    und von b nach a:

    Public Sub überweisen(byRef formB As FormB, ByRef wert As Integer)
    b = formB
    guthabenErhoehen(wert)
    b.guthabenSenken(wert)

    End Sub
     

  11. #11
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Also bei FormA habe ich das jetzt so gemacht:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    Option Explicit On
    Option Strict On
    Public Class FormA
        Dim b As FormB
        Dim guthaben, wert As Integer
     
        Public Sub guthabenSenken(ByRef wert As Integer)
     
            guthaben = guthaben - wert
     
        End Sub
     
     
        Public Sub überweisen(ByRef formB As FormB)
            b = formB
            b.guthabenErhoehen(10)
            guthabenSenken(10)
        End Sub
     
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Geld.Text = CStr(wert)
            Waehrung.Text = CStr(guthaben)
            FormB.Geld.Text = CStr(wert)
            FormB.Währung.Text = CStr(guthaben)
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            FormB.Show()
        End Sub
     
        Private Sub FormA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
    End Class

    Meintest Du das so ?
     

  12. #12
    gander gander ist offline Mitglied Bronze
    Registriert seit
    Sep 2010
    Beiträge
    33
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Option Explicit On
    Option Strict On
    Public Class FormA
        Dim b As FormB
        Dim guthaben, wert As Integer
     
        Public Sub guthabenSenken(ByRef wert1 As Integer)

    Hier müsstest du den als parameter mitgegebenen Wert "wert" noch der oben angelegten "wert" variable zuweisen

    am besten gibts du der variable die du als parameter angibst einen anderen namen damit du weist was was ist, ich benenne sie hier mal in wert1 um, also fehlst noch:
    Code :
    1
    2
    3
    4
    
    wert = wert1  
            guthaben = guthaben - wert
     
        End Sub

    wie gesagt würde ich hier nicht guthabenSenken(10) sondern guthabenSenken(wert) sagen, weil du sonst das guthaben immer nur um 10 ändern kanst und anders könntest du der variable wert eine beliebige zahl zuweisen dann könntest du einmal das guthaben um 50 ändern ein anderes mal um 22 und wieder ein anderes mal um einen anderen beliebigen wert. Dann müsstest du aber der wert um den du das guthaben ändern möchtest dei der Methode überweisen als parameter mit geben
    Code :
    1
    2
    3
    4
    5
    
    Public Sub überweisenANachB(ByRef formB As FormB, ByRef wert As Integer)
            b = formB
            b.guthabenErhoehen(wert)
            guthabenSenken(wert)
        End Sub


    und da du ja auch von b nach a überweisen möchtest fehlt noch:
    Code :
    1
    2
    3
    4
    5
    
    Public Sub überweisenBNachA(ByRef formB As FormB, ByRef wert As Integer)
            b = formB
            guthabenErhoehen(wert)
            b.guthabenSenken(wert)
        End Sub


    Code :
    1
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Geld und Waehrung sind TextBoxen oder?
    Nur als kleiner Tipp nebenbei, wenn du größere Programme schreibst solltest du textboxen so nennen das Sie auch als Textboxen identifizierbar sind, aslo z.B. nicht nur "Geld" sonder "txtBoxGeld"
    Code :
    1
    2
    3
    4
    5
    
     Geld.Text = CStr(wert)
            Waehrung.Text = CStr(guthaben)
            FormB.Geld.Text = CStr(wert)
            FormB.Währung.Text = CStr(guthaben)
        End Sub

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            FormB.Show()
        End Sub
     
        Private Sub FormA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
    End Class

    FormB müsste jetzt natürlich dann auch die Methoden überweisenBNachA und überweisenANachB haben

    und noch eine frage, was soll die methode Button1_click genau machen?
    soll sie ein vorhandenes FormB anzeigen oder soll sie ein neues FormB öffnen?
    Geändert von gander (06.12.10 um 10:07 Uhr)
     

  13. #13
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi gander

    Bitte bearbeitet deine Beitrag und setz den Quellcode in die entsprechenden Code-Tags! Du machst damit deine Beiträge erheblich lesbarer! Mit hellblau auf weiß machst du es dem Leser auch nicht einfacher
    Danke!
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  14. #14
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Leute, ich geb nicht auf.
    Ich habe ja dieses Beispiel von der Seite:

    http://www.aboutvb.de/khw/artikel/khwshowdlg.htm

    Das ist zwar leider Visual Basic 6.0 aber ich werde es einfach 1 zu 1 in Visual Studio 2008 erstellen und es auseinander nehmen, und das so lange, bis ich das verstanden habe.

    Und das kopieren von VB 6.0 zu VB 2008, halte ich auch für kein Problem, da die meisten Codezeilen hier schonmal aufgetaucht sind.
     

  15. #15
    Willy Fog Willy Fog ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    70
    Habs geschafft (^-_^!)

    Weiß zwar nicht wie, aber ich habe es geschafft.
    Kann jetzt in Form B ein ert verändern und es wird zum Geld hizugefügt.

    Danke nochmal für Eure Hilfe ******
     

Ähnliche Themen

  1. Excel in Visual-Basic-Form anzeigen
    Von RalU im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 09.03.11, 16:59
  2. [richfaces]/[jsf]: Bei action in einer Form auch Daten aus anderer Form übertragen
    Von paula123 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 5
    Letzter Beitrag: 10.03.10, 15:14
  3. Visual Basic 2008- Form.vb(Entwurf weg)
    Von djlars im Forum .NET Windows Forms
    Antworten: 6
    Letzter Beitrag: 06.12.09, 18:28
  4. Form an den Desktop andocken (Visual Basic 2005)
    Von Tobbi2 im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 17.10.07, 15:08
  5. Visual Basic 6.0 (Form verschiebung)
    Von Cracker2k im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 10.01.05, 19:24