ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
707
707
EMPFEHLEN
-
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.
-
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 von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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.
-
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?
-
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.
-
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
-
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...
-
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 (^-_^!)
-
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 ****?
-
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
-
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 ?
-
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
Geld und Waehrung sind TextBoxen oder?Code :1
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
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)
-
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 von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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.
-
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
-
Excel in Visual-Basic-Form anzeigen
Von RalU im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 09.03.11, 16:59 -
[richfaces]/[jsf]: Bei action in einer Form auch Daten aus anderer Form übertragen
Von paula123 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 5Letzter Beitrag: 10.03.10, 15:14 -
Visual Basic 2008- Form.vb(Entwurf weg)
Von djlars im Forum .NET Windows FormsAntworten: 6Letzter Beitrag: 06.12.09, 18:28 -
Form an den Desktop andocken (Visual Basic 2005)
Von Tobbi2 im Forum .NET Windows FormsAntworten: 4Letzter Beitrag: 17.10.07, 15:08 -
Visual Basic 6.0 (Form verschiebung)
Von Cracker2k im Forum Sonstige SprachenAntworten: 2Letzter Beitrag: 10.01.05, 19:24





Zitieren

Login





