Supportnet / Forum / Anwendungen(Java,C++...)
Globale Variable im VB wie geht das??
Frage
Hallo
kann mir einer diese einfache Frage beantworten. Gibt es da ein oder zwei möglichkeiten.
mfg Froschkoenig
Antwort 1 von KSKS
Hi,
meinste das z.B.
Public a as String
Public i as Integer
??? oder so.
mfg Klaus
meinste das z.B.
Public a as String
Public i as Integer
??? oder so.
mfg Klaus
Antwort 2 von misterUE
Wenn du das, was Klaus geschrieben hat, im Modul machst, brauchst du nicht mehr den Formularnamen davorzuschreiben!
mfg, ÜM!T
mfg, ÜM!T
Antwort 3 von PotzBlitz
Hallo Froschkoenig,
schau dir diese Übersicht an, die sollte alle Varianten abdecken.
′----- Modul1.bas Anfang ---------
Option Explicit
′ Variable ist im gesamten Projekt sichtbar für alle Formulare, Module usw.
Public Beispiel1 As String
′ Variable ist nur innerhalb dieses Modul sichtbar, alle Prozeduren und Funktionen dieses Moduls können sie nutzen.
Private Beispiel2 As String
Private Sub TestProzedur()
′ Diese Variable ist nur innerhalb dieser Prozedur sichtbar _
und stirbt nach Abarbeitung der Prozedur
Dim Beispiel3 As String
End Sub
′----- Modul1.bas Ende ---------
Gruss
PotzBlitz
schau dir diese Übersicht an, die sollte alle Varianten abdecken.
′----- Modul1.bas Anfang ---------
Option Explicit
′ Variable ist im gesamten Projekt sichtbar für alle Formulare, Module usw.
Public Beispiel1 As String
′ Variable ist nur innerhalb dieses Modul sichtbar, alle Prozeduren und Funktionen dieses Moduls können sie nutzen.
Private Beispiel2 As String
Private Sub TestProzedur()
′ Diese Variable ist nur innerhalb dieser Prozedur sichtbar _
und stirbt nach Abarbeitung der Prozedur
Dim Beispiel3 As String
End Sub
′----- Modul1.bas Ende ---------
Gruss
PotzBlitz
Antwort 4 von Froschkoenig
Hallo
Und Danke für die schnellen Antworten.
mfg Froschkoenig
Und Danke für die schnellen Antworten.
mfg Froschkoenig
Antwort 5 von Froschkoenig
Sorry
Warum der unterschied bei deinen letzten beiden Beispielen??? Die Variablen sind doch auch immer nur in einer Prozedur oder Modul gültig, oder??
mfg Froschkoenig
Warum der unterschied bei deinen letzten beiden Beispielen??? Die Variablen sind doch auch immer nur in einer Prozedur oder Modul gültig, oder??
mfg Froschkoenig
Antwort 6 von PotzBlitz
Hallo Froschkoenig,
ich verstehe nicht ganz, was du meinst. Wenn du dich auf meine drei Variablen beziehst, dann sollten die Kommentarzeilen eigentlich eindeutig genug sein. Eine Variable innerhalb einer Prozedur ist NUR in DIESER Prozedur verfügbar, eine andere Prozedur in diesem Modul oder sonstwo hat keinen Zugriff auf die Variablen dieser Prozedur. Dagegen ist eine privat deklarierte Variable in einem Modul (ganz oben am Modulanfang) für alle Prozeduren und Funktionen in DIESEM Modul verfügbar. Jede Prozedur in diesem Modul kann daran herumfummeln, wodurch öfters mal so genannte "magic values" entstehen: Urplötzlich hat sich der Wert der Variable geändert und keiner weiss - mangels Übersicht bei der Programmierung - warum. :-)
Gruss
PotzBlitz
ich verstehe nicht ganz, was du meinst. Wenn du dich auf meine drei Variablen beziehst, dann sollten die Kommentarzeilen eigentlich eindeutig genug sein. Eine Variable innerhalb einer Prozedur ist NUR in DIESER Prozedur verfügbar, eine andere Prozedur in diesem Modul oder sonstwo hat keinen Zugriff auf die Variablen dieser Prozedur. Dagegen ist eine privat deklarierte Variable in einem Modul (ganz oben am Modulanfang) für alle Prozeduren und Funktionen in DIESEM Modul verfügbar. Jede Prozedur in diesem Modul kann daran herumfummeln, wodurch öfters mal so genannte "magic values" entstehen: Urplötzlich hat sich der Wert der Variable geändert und keiner weiss - mangels Übersicht bei der Programmierung - warum. :-)
Gruss
PotzBlitz
Antwort 7 von AgentWiko
Es besteht auch die Möglichkeit der folgenden declaration (z.B.):
Global Variable1 as Long
Das Schlüsselwort "Global" macht die Variable "Variable1" gloabal. Das Schlüsselwort darf aber nur in Modulen außerhalb einer Protzedur verwendet werden, um globale Variablen festzulegen.
Man muss bei VB mit dem Wort Global jedoch vorsichtig umgehen, weil es in VB genaugenomen keine globalen Variablen gibt. Wenn man z.B. in VB eine DLL-Datei programiert, die z.B. ActiveX-Objecte enthält werden die globalen Variablen, die in der DLL festgelegt sind von dem Rest des Processes, zu dem die DLL angedockt wurde, nicht gesehen. Sie sind also so gesehen nicht global. Wirklich globale Variablen gibt es nur in C++!
Global Variable1 as Long
Das Schlüsselwort "Global" macht die Variable "Variable1" gloabal. Das Schlüsselwort darf aber nur in Modulen außerhalb einer Protzedur verwendet werden, um globale Variablen festzulegen.
Man muss bei VB mit dem Wort Global jedoch vorsichtig umgehen, weil es in VB genaugenomen keine globalen Variablen gibt. Wenn man z.B. in VB eine DLL-Datei programiert, die z.B. ActiveX-Objecte enthält werden die globalen Variablen, die in der DLL festgelegt sind von dem Rest des Processes, zu dem die DLL angedockt wurde, nicht gesehen. Sie sind also so gesehen nicht global. Wirklich globale Variablen gibt es nur in C++!

