| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
| KISTERS 3DViewStation: Unterstützung für 3D CAD Kollaboration mit Lieferanten, eine Pressemitteilung
|
Autor
|
Thema: Variablen Definition (1581 mal gelesen)
|
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 13. Sep. 2013 11:57 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, normalerweise definiere ich eine Variable als Public um sie in allen Modulen eines Projekts verwenden zu können ohne sie übergeben zu müssen. Ich dachte das wäre auch für UserForms möglich, bekomme nun aber immer Fehlermeldungen. Ist es also möglich eine Variable in einem Modul zu definieren und z.B. beim klicken eines Buttons zu verwenden? Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcL68 Mitglied Group Leader Mechanical Design
Beiträge: 27 Registriert: 21.08.2013 Windows 10 Entreprise Version 10.0.17763 HP ZBook 17G2 i7-4610M; 3.0GHz;(RAM)16,00 Go NVIDIA Quadro 3000M CATIA V5R2012 SP3 - V5R2018
|
erstellt am: 10. Okt. 2013 13:29 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Hallo Thomas, Bei mir funktioniert es. Ich habe Variable als Public definiert und kann sie dann im UsersForm Code benutzen (sehe Bild). Es gibt vielleicht ein anderes Problem im Code.
------------------ Gruss Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 10. Okt. 2013 17:24 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Ich glaub Thomas hat es genau andersrum gemacht, dann geht's, glaube ich, nicht. :-) Aber seis drum. Bitte versuch das in Zukunft zu vermeiden, das ist unsaubere Programmierung und Deine Variablen werden einfach auf Dauer unübersichtlich und belegen unnötig Speicher. - ich weiß viele Entwickler glauben heute der sie unendlich... - Aber warum brauchen wir denn ständig neue Superlative im Arbetisspeicher? Genau! :-D Schreib lieber, wenn Du so arbeiten musst, eine Private-Variable in Dein Modul und mach ne Funktion dazu (am besten ne Klasse mit ner Property) um die Variable zu setzen. Also im Modul: Code:
OPTION EXPLICITPrivate priv_sMyString as String Public Sub setMyString(byref i_sStringToSet As String) priv_sMyString = i_sStringToSet End Sub Public Function getMyString() As String getMyString = priv_MyString End Function
So hast Du saubere Funktionen für den Variablenzugriff, kannst sie noch verarbeiten und vor allem keine Querschläger. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 22. Okt. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 14. Okt. 2013 11:02 <-- editieren / zitieren --> Unities abgeben:
Hallo und danke für die Antworten, ich habe es eigentlich genauso gemacht wie Marc. Es wäre mir aber lieber das "saubere" programmieren zu lernen. Dazu bräuchte ich noch ein paar Hinweise wie der Ablauf genau ist. Wie weise ich der Variable einen Wert zu? Rufe ich dazu die Prozedur "setMyString" auf und übergebe den Wert byref? Und wann wird dann die Funktion aufgerufen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 15. Okt. 2013 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Ja setMyString() aufrufen. Aufrufen wann immer Du die Variable verändern möchtest. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 22. Okt. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 16. Okt. 2013 10:09 <-- editieren / zitieren --> Unities abgeben:
|
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 17. Okt. 2013 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
|
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 18. Okt. 2013 10:44 <-- editieren / zitieren --> Unities abgeben:
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 22. Okt. 2013 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasJay
Stand denn vorher was drin bevor Du den getter aufgerufen hast? ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |