DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

in SUD Einstellungen in Variablen ablegen ohne begr. Diademvariablen zu nutzen ?

Hallo
 
wie kann ich in einem umfangreichen Diadem SUD Variablen belegen z.b. Boolsche Variablen durch checkbox'en ohne auf die
Zahlenmäßige begrenzung durch die Diadem Variablen (B1 -- B10) zu stoßen ?
 
die Variablen sollen später (nicht im SUD !)  in einer VBS Datei weitergenutzt werden ! 
0 Kudos
Message 1 of 8
(4,480 Views)

Hallo Thomas

Sie können den Befehl GlobalDim in Ihrem aufrufenden Script verwenden.

Deklariert globale Variablen und reserviert Speicherplatz für diese Variablen. Globale Variablen behalten ihre Gültigkeit und ihren Inhalt, solange Sie DIAdem nicht beenden und solange Sie die Script-Engine nicht neu starten.

Call GlobalDim(VarName) z.B Call GlobalDim("MyVar")
Die Variable sind immer vom Typ Variant wie in VBS üblich, können aber auch boolsche Werte aufnehmen.
Winfried
0 Kudos
Message 2 of 8
(4,481 Views)
Hallo Thomas!
 
Winfirieds Vorschlg ist schon ein guter Anfang. Bei einer größeren Zahl von Variablen macht es Sinn sich eine kleine Klasse zu machen die nur die Variablen beinhaltet. Eine Instanz dieser Klasse wird dann in die globale Variable gesteckt. Das macht die Deklaration und den Zugriff dann etwas schöner.
 
Dies kann dann so aussehen (Prinzip):
Class CMyValues
  Public bCheckbox1
  Public bCheckbox2
  Public bCheckbox3
  Public sgText1
End Class
 
 
 
Call GlobalDim("MyValues")
 
Set MyValues = new CMyValues
 
MyValues.bCheckbox1  = CheckBox1.Value = 1
MyValues.bCheckbox2  = CheckBox2.Value = 1
MyValues.bCheckbox3  = CheckBox3.Value = 1
MyValues.sgText1     = Edit1.Text
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 3 of 8
(4,473 Views)

Thomas,

eine andere Möglichkeit ist eine Benutzervariablendatei (*.vas) anzulegen, dort die Variablen zu deklarieren.
Schöner Nebeneffekt dabei: mit uservarsave kann man die Inhalte der Variablen speichern und sie sind trotz Script- oder DIAdem-Ende beim nächsten Mal wieder da (uservarload)

 

greets Andreas

Volkswagen AG
Wolfsburg - Germany
0 Kudos
Message 4 of 8
(4,444 Views)
Vielen Dank für die nett gemeinten Tipps ich habe aber noch das Problem das ich im SUD die Diadem Variablen anmelden muß und diese immer als Variant erkannt werden ich weis aber nicht wie ich in Diadem in der .vas Datei eine Variable als Variant Deklarieren kann laut Hilfe muß die SUD Variable ja dem Typ der Diadem Variable entsprechen und hier finde ich den Typ Variant nicht mit entsprechendem Kürzel für die .vas Datei !  
0 Kudos
Message 5 of 8
(4,427 Views)

Hallo Thomas,

in *.vas kann man keine Variant-Typen deklarieren, sondern nur eine der Typen:
BOOLEAN, HALF (Byte), INTEGER,WORD, LONGINT, REAL, FREIE TEXTE, AUFZAEHL,GROESSENLISTE.

nur wenn die vas aktiviert ist (unter DIAdem-Script - Bearbeiten - Anwendervariablen aktivieren, oder Symbol), kann man im SUD den Typ ermitteln lassen.
wenn sie nicht aktiviert ist, muss man den Typ selbst eintragen.

greets Andreas

Volkswagen AG
Wolfsburg - Germany
0 Kudos
Message 6 of 8
(4,422 Views)

Ich habe folgendes Versucht

 

.vas Datei (Ausschnitt)

Drucken_PNG$        : B <'False'>

die Vas Datei in Diadem angemeldet   Call UserVarCompile()

Ergebnis im SUD

Variable wird als Variant erkannt

(Hinweis Die Variable konnte erfolgreich typisiert werden.)

daher mein Problem - (;-())

0 Kudos
Message 7 of 8
(4,418 Views)
is ja komisch...
habe ich immer so gemacht und dein bsp. funzt bei mir auch. allerdings nutze ich vor allem DIAdem 8 + 9.
NI...?!!! ( it's not a bug it's a feature!) Smiley Very Happy
 
 
 
greets Andreas

Volkswagen AG
Wolfsburg - Germany
0 Kudos
Message 8 of 8
(4,407 Views)