Går det att på annat sätt än att mellanlagra variabler för att använda dem från annan form? Hej... >Usch, det svåraste med programmering är att formulera frågor ;-) Det är inte snygg programmering att lägga publica variabler (Är det man Emma, om du måste racka ner så kan du är ge en bättre förklaring eftersom jag tror inta att Ale Thoor exakt vet vad klass-specifika eller form-specifika är. Hej,Public Variabler...
Alltså om jag har några variabler på form1 och vill använda dem även i form2 måste då jag lagra dem i en lblTemp.Caption vilket jag alltid gjort, eller går det att komma åt dem på annat sätt?
Usch, det svåraste med programmering är att formulera frågor ;-)
Ale ThoorSv: Public Variabler...
Du kan ju lägga dina globala variabler i en modul
Public minVariabel As String
Vet inte om det är rätt att göra så men det fungerar :-)
Mvh DennisSv: Public Variabler...
Japp men det roliga är att man alltid lär sig något nytt genom att fråga :-)
Dennis förslag stämmer mycket bra.
/JanneSv: Public Variabler...
lär sig först på vilken programmeringskurs som helst.). Ibland är man
tvungen, men då ska det var unika fall - bästa lösningen brukar vara att göra dem klass-specifika (eller formspecifika i det här fallet), genom att
skicka med dem över när man öppnar det nya formuläret.
/EmmaSv: Public Variabler...
Det Emma vill säga (tror jag) är att du kan högst upp i form1 deklarera din variabel som:
Public strTest As String
Och sen i form2 ropa på din variabel i form1 på följande sätt:
vadsomhelst = Form1.strTest
Och givetvis finns det sedan flera bra och mindre bra sätt.
/JanneSv: Public Variabler...
<br><br>
Här kommer ett resonemang som jag hemskt gärna vill ha lite respons på, för jag är inte helt hundra på alla detaljer (det har hänt förr som några kanske känner till). Trots att jag inte är helt säker så väljer jag ändå att skriva detta inlägg, så jag betackar mig för kommentarer om att jag skall kolla fakta innan jag skriver någonting. Nu till resonemanget...
<br><br>
Det där med att ha en public variabel i Form1 (ex strValue) , och sedan i Form2 hämta värdet med Form1.strValue vill jag nog avråda från. Det finns säker fler än en anledning till det, men den som jag främst tänker på är att det inte kommer att fungera i nästa version i VB (VB 7 .NET), då alla kontroller (ex formulär) kommer att vara objekt.
<br><br>
Jag skulle välja att i Form1 skapa en privat medlemsvariabel, och att ge public åtkomst till den genom propertys.
<code>
Private mMyValue As String
Public Property Get MyValue() As String
MyValue = mMyValue
End Property
Public Property Let MyValue(ByVal strValue As String)
mMyValue = strValue
End Property
</code>
I Form1 så kan du tilldela din property ett värde enl följande.
<code>
MyValue = "Värde"
</code>
Om du sedan öppnar ett nytt form och du vill komma åt värdet i Form1, så kan man göra det så här
<code>
Dim objForm As Form
Dim strValue As String
' Tilldela objForm referensen till det aktiva Form1
Set objForm = Form1
strValue = objForm.MyValue
Set objForm = Nothing
</code>
mvh /Thomas