Thema Datum  Von Nutzer Rating
Antwort
18.05.2021 11:45:45 KaKaKa
NotSolved
18.05.2021 12:32:14 Mase
NotSolved
18.05.2021 12:52:40 KaKaKa
NotSolved
18.05.2021 13:19:55 Trägheit
NotSolved
18.05.2021 13:39:57 KaKaKa
NotSolved
18.05.2021 13:51:09 Trägheit
NotSolved
18.05.2021 14:10:47 KaKaKa
NotSolved
18.05.2021 14:27:51 Trägheit
NotSolved
18.05.2021 14:50:30 KaKaKa
NotSolved
18.05.2021 15:38:43 Trägheit
NotSolved
18.05.2021 15:44:30 Mase
NotSolved
18.05.2021 15:48:17 Trägheit
NotSolved
18.05.2021 17:08:46 KaKaKa
NotSolved
18.05.2021 17:16:14 Gast91440
NotSolved
18.05.2021 19:09:11 xlKing
NotSolved
18.05.2021 19:32:51 Gast75132
NotSolved
18.05.2021 19:51:25 xlKing
NotSolved
18.05.2021 20:07:17 xlKing
NotSolved
Rot Frage zu Klassenprogrammierung
19.05.2021 07:12:28 KaKaKa
NotSolved
19.05.2021 18:30:44 xlKing
NotSolved
20.05.2021 11:59:26 KaKaKa
NotSolved

Ansicht des Beitrags:
Von:
KaKaKa
Datum:
19.05.2021 07:12:28
Views:
527
Rating: Antwort:
  Ja
Thema:
Frage zu Klassenprogrammierung

Hey,

danke erstmal für Eure Mühen. Ich weiß, ich bin eine harte Nuss...

 

Folgendes habe ich verstanden:

Das arbeiten mit Funktionen erfordert klammern. Beispiel:

msgbox meineKlasse.getName()

Und bei Let und Set können die Klammern weggelassen werden:

msgbox meineKlasse.getName

Das ist grundsätzlich etwas neu für mich. Ich habe mich schon immer gewundert warum in VBA-Codes so wenig Klammern vorzufinden sind...

 

Und bei der Zuweisung benötigt man bei Funktionen keinen Zuweisungsoperator:

myClass.Alter (10)

und bei der Zuweisung über Let kann man den Zuweisungsoperator benutzen (wenn man will - wie ich eben getestet habe):

myClass.Alter = 10

 

Habe ich das soweit richtig verstanden?

 

 

Folgendes von xlKing verstehe ich nicht:

1
2
3
4
5
6
7
8
9
Private m_version As Integer
 
Public Property Get Version() As Integer
  Version = m_version
End Property
 
Friend Sub Version(Wert As Integer)
  m_version = Wert
End Sub

Mit diesem Code kannst du eine schreibgeschützte Eigenschaft erzeugen, die zwar innerhalb deines Projekts (also nur von dir) beschrieben werden kann. Aber von anderen Projekten aus nur ausgelesen werden kann. Schau dazu einfach mal in den Objektkatalog da gibt es viele schreibgeschützte Eigenschaften.

Was meinst Du mit einer schreibgeschützten Eigenschaft? Ist die Eigenschaft m_version nicht bereits durch eine private-Deklaration quasi geschützt?

 

Aber schon richtig, Property-Procs haben eben für Getter u. Setter den gl. Namen, anaolg der VBA-Objekte im Objektkatalog....schon ne coole Sache, oder...

Sehr interessant! Ich kenne das in C++ so, dass gleiche Namen für verschiedene Methoden möglich sind, vorausgesetzt die Methoden verwenden alle unterschiedliche Parameter, so das der Compiler sie auseinander halten kann - das nennt man Überladen. Das scheint in VBA wohl nicht so zu sein, die einzige Ausnahme von der ich bis jetzt weiß sind wohl die Get- und Let-Methoden (nennt man dies dann auch Methoden, oder gibt es eine spezielle Bezeichnung dafür?)

Wörter wie get oder set im Namen dann weglassen kann und trotzdem jederzeit weiß ob nun der Wert gesetzt oder ausgelesen wird.

Wie ist das gemeint, das man jederzeit weiß ob der gesetzt oder ausgelesen wird? Wenn man das get oder let als Präfix des Methodenbezeichners weglässt, ist es doch eigentlich nicht mehr ersichtlich, zumindest was den Bezeichner angeht. Oder meinst Du damit, wenn man z.B. einen Wert setzt eben ein Parameter zugewiesen wird, und beim auslesen eben nicht und damit ersichtlich ist ob gelesen oder geschrieben wird (keine Parameter = auslesen bzw. get, und mit Parameter = setzen bzw. set)

 

Schönen Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
18.05.2021 11:45:45 KaKaKa
NotSolved
18.05.2021 12:32:14 Mase
NotSolved
18.05.2021 12:52:40 KaKaKa
NotSolved
18.05.2021 13:19:55 Trägheit
NotSolved
18.05.2021 13:39:57 KaKaKa
NotSolved
18.05.2021 13:51:09 Trägheit
NotSolved
18.05.2021 14:10:47 KaKaKa
NotSolved
18.05.2021 14:27:51 Trägheit
NotSolved
18.05.2021 14:50:30 KaKaKa
NotSolved
18.05.2021 15:38:43 Trägheit
NotSolved
18.05.2021 15:44:30 Mase
NotSolved
18.05.2021 15:48:17 Trägheit
NotSolved
18.05.2021 17:08:46 KaKaKa
NotSolved
18.05.2021 17:16:14 Gast91440
NotSolved
18.05.2021 19:09:11 xlKing
NotSolved
18.05.2021 19:32:51 Gast75132
NotSolved
18.05.2021 19:51:25 xlKing
NotSolved
18.05.2021 20:07:17 xlKing
NotSolved
Rot Frage zu Klassenprogrammierung
19.05.2021 07:12:28 KaKaKa
NotSolved
19.05.2021 18:30:44 xlKing
NotSolved
20.05.2021 11:59:26 KaKaKa
NotSolved