Autor
|
Thema: eigene Klassen (875 mal gelesen)
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 09. Mrz. 2010 18:30 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich wollte mit VBACAT eine eigene Klasse mit Eigenschaften und Methoden erstellen. Habe das ganze in einem Klassenmodul versucht. Funktioniert aber nicht so, wie ich es sonst kenne und in der Hilfe habe ich nichts dazu gefunden. Kann mir jemand sagen, wie in dem Klassenmodul das ganze aussehen muss? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 09. Mrz. 2010 19:33 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 09. Mrz. 2010 21:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für deine Antwort. Habe das mal ausprobiert. Leider bekomme ich nur eine leere MessageBox.Irgendwo ist da noch ein kleiner Anfängerfehler. Mein Klassenmodul:
Code: Public Property Get dXCoordinate() As String dXCoordinate = pdXValue End PropertyPublic Property Let dXCoordinate(dXArgument As String) pdXValue = dXArgument End Property
Mein Sub:
Code: Sub SubTest() Dim MeinPunkt As PointClass Set MeinPunkt = New PointClass MeinPunkt.dXCoordinate = "10" MsgBox (MeinPunkt.dXCoordinate) End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 09. Mrz. 2010 21:28 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, bei mir funktioniert es so: PointClass.cls
Code: Private pdXValue As String 'Das fehlt bei dir wahrscheinlich. 'In dieser klasseninterner Variable wird der Wert gespeichert.Public Property Get dXCoordinate() As String dXCoordinate = pdXValue End Property Public Property Let dXCoordinate(dXArgument As String) pdXValue = dXArgument End Property
Testcode ist genau deiner.Ich würde dir generell anraten, in VBA mit "Option explicit" zu arbeiten (d.h. jede Variable muss zumindest deklariert werden). Es ist zwar manchmal aufwendiger, aber viel sicherer. Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 09. Mrz. 2010 22:11 <-- editieren / zitieren --> Unities abgeben:
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 10. Mrz. 2010 08:38 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, habe doch noch mal eine Frage. WOllte nun eine Set-Methode zum Setzen mehrerer Eigenschaften schreiben. Bei nur einem Übergabeparameter funktioniert das ganze auch. Bei mehreren leider nicht. Code: Sub test() Dim Toolpoint As PointClass Set Toolpoint = New PointClass Toolpoint.SetValue (1, 1) 'Diese Zeile wird bei mir rot markiertEnd Sub
Code: Private pdXValue As Double Private pdYValue As DoublePublic Property Get dXCoordinate() As Double dXCoordinate = pdXValue End Property Public Property Let dXCoordinate(dXArgument As Double) pdXValue = dXArgument End Property Public Property Get dYCoordinate() As Double dYCoordinate = pdYValue End Property Public Property Let dYCoordinate(dYArgument As Double) pdYValue = dYArgument End Property Public Sub SetValue(dXArgument As Double, dYArgument As Double) Me.dXCoordinate = dXArgument Me.dYCoordinate = dYArgument End Sub
[Diese Nachricht wurde von wulfgang am 10. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 10. Mrz. 2010 20:02 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 11. Mrz. 2010 09:57 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 12. Mrz. 2010 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, eine Frage zu der Klasse: wenn ich mir das Objekt Toolpoint ins Watch ziehe, sehe ich sowohl die Variable aus der Let- als auch aus der Get-Prodzedur als Property vom Toolpoint (z.B. dXCoordinate und pdXValue), die auch immer den selben Wert haben. Eigentlich handelt es sich doch um ein und dieselbe Property, oder verstehe ich irgendwas falsch? (Es geht jetzt nicht speziell um den hier geposteten Code, das ist mir bei eigenen Klassen schon öfter aufgefallen.) Gruß TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |