Hallo Maximilian,
Post by Maximilian Incaniich habe ein Formular, welches ein zweites aufruft, und das
aufgerufene Formular muß einen Ergebniswert an das
aufrufende Formular zurückgeben.
Entweder ich suche nun falsch, oder das geht nicht
(kann ich mir aber nicht vorstellen).
Kleines Beispiel mit 2 Forms.
Form1 ruft die Form2 auf,
Form1 übergibt dabei an Form2 einen Wert vom Typ Currency
Form2 übergibt einen Wert vom Typ Currency an die Form1
' /// Code in Form1
Option Explicit
Private mBetrag as Currency
Public Property Get Betrag() as Currency
Betrag = mBetrag
End Property
Public Property Let Betrag(BetragNew as Currency)
mBetrag = BetragNew
End Property
Private Sub Command1_Click()
With Form2
' Einen Wert an die Eigenschaft
' Form2.Betrag übergeben
.Betrag = 25.12
' und die Form2 anzeigen
.Show , me
end with
End Sub
' /// Code in Form2
Option Explicit
Private mBetrag as Currency
Public Property Get Betrag() as Currency
Betrag = mBetrag
End Property
Public Property Let Betrag(BetragNew as Currency)
mBetrag = BetragNew
End Property
Private Sub IrgendEineSub()
dim curBuffer as Currency
' der von Form1 übergebene Betrag steht in mBetrag,
' mit diesem Wert wird eine Berechnung durchgeführt.
curBuffer = mBetrag/100 * 15
' das Ergebnis der Berechnung wird an
' Form1.Betrag zurückgegeben.
Form1.Betrag = curBuffer
End Sub
' \\\ Ende Code
Durch jeweils ein Prozedurenpaar Property Get / Property Let (bzw. Property
Set für Objekte) erhalten die beiden Forms eine zusätzliche Eigenschaft
.Betrag. Im Beispiel ist dies eine Eigenschaft vom Typ Curency. Natürlich
kann das auch jeder andere VB-Datentyp sein.
Soll eine solche Eigenschaft nur lesbar sein, lässt Du einfach die Property
Let - Prozedur (bzw. Property Set, bei Objekten) weg.
Soll die Eigenschaft nur beschreibbar, aber nicht lesbar sein, lässt Du die
Property Get - Prozedur weg.
Gruß aus St.Georgen
Peter Götz
***@gssg.de
www.gssg.de (mit VB-Tips u. Beispielprogrammen)