Moin !
ich habe mich auf den Weg gemacht meine erste Klasse zu vererben.
Hier zunächst die Unterklasse
dann der Anfang aus der Oberklasse.
Ein Verweis aus der Unterklasse auf die Oberklasse ist gesetzt.
Das Problem ist nun, dass nach dem Einbinden der neuen Unterklasse zwar die Test-Funktion angeboten wird.
Andere Funktionen aus der Oberklasse werden aber nicht angeboten.
Hier Code aus der Oberklasse:
Habe ich da vielleicht etwas übersehen - kann mir einer weiterhelfen?
Gruß Jan
PS: eine Ergänzung noch. Wenn ich mybase. eingebe, dann werden mir ALLE Funktionen aus der Oberklasse angeboten!!! Das verstehe ich irgendwie nochweniger.
ich habe mich auf den Weg gemacht meine erste Klasse zu vererben.
Hier zunächst die Unterklasse
VB.NET-Quellcode
- Imports System.IO
- Imports Microsoft.VisualBasic
- Public Class Log
- ' ++++++++++ http://ma22-wiki-001/eblwiki/index.php?title=AcLog_(Klasse_von_EBL.Service) ++++++++++
- Inherits EBL.Logger.Log
- Private _AcDocument As Autodesk.AutoCAD.ApplicationServices.Document
- Private _Editor As Autodesk.AutoCAD.EditorInput.Editor
- Private _LOGFILEPATH As String = ""
- Private _TryReport As EBL.Service.TryCatchReport
- ''' <summary>
- ''' Anlegen einer neuen Instanz
- ''' </summary>
- <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
- Public Sub New()
- MyBase.New()
- AcReInit()
- '_DebugStatus = _Optionen.GetDebugStatus()
- _LOGFILEPATH = Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("LOGFILEPATH")
- '_TryReport = New EBL.Service.TryCatchReport
- End Sub
- 'Update der Verbindung zur aktuellen DWG
- <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
- Private Sub AcReInit()
- 'TODO: Add constructor logic here
- Try
- _AcDocument = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
- _Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
- Catch ex As System.Exception
- _TryReport.Show("unvorhergesehener Fehler in EBL.Service > Script > AcReInit", ex.ToString)
- MsgBox("unvorhergesehener Fehler in EBL.Service > Script > AcReInit" & vbCrLf & vbCrLf & ex.ToString)
- End Try
- End Sub
- Public Sub test()
- MsgBox("testausgabe")
- End Sub
- End Class
dann der Anfang aus der Oberklasse.
VB.NET-Quellcode
- Imports System.IO
- Imports Microsoft.VisualBasic
- Public Class Log
- ' ++++++++++ http://ma22-wiki-001/eblwiki/index.php?title=Log_(Klasse_von_EBL.Service) ++++++++++
- Const _k_DebugStatus As Boolean = False
- 'Private _Optionen As EBL.Optionen.Options
- Private _LOGFILEPATH As String = ""
- Private _OutputLogFile As Boolean = False
- Private _OutputScreen As Boolean = True
- Private _TryReport As EBL.Service.TryCatchReport
- Private _LogFileName As String
- Private _LineCounter As Long
- Private _TotalErrCount As Integer = 0 'Anzahl Fehlermeldungen
- Private _IgnoreLogWrite As Boolean = False
- Private _DialogHeader As String = ""
- ''' <summary>
- ''' Anlegen einer neuen Instanz
- ''' </summary>
- <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
- Public Sub New()
- ''- AcReInit()
- '_DebugStatus = _Optionen.GetDebugStatus()
- ''- _LOGFILEPATH = Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("LOGFILEPATH")
- _TryReport = New EBL.Service.TryCatchReport
- _LogFileName = "EBL_Fehlersuche.log" ' StandardName
- _DialogHeader = k_CompanyName
- ReSetFileCount()
- End Sub
Ein Verweis aus der Unterklasse auf die Oberklasse ist gesetzt.
Das Problem ist nun, dass nach dem Einbinden der neuen Unterklasse zwar die Test-Funktion angeboten wird.
Andere Funktionen aus der Oberklasse werden aber nicht angeboten.
Hier Code aus der Oberklasse:
VB.NET-Quellcode
- <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
- Public Sub WriteAsError(ByVal Ausgabetext As String, Optional ByVal AppendData As Boolean = True, Optional ByVal AddErrCount As Boolean = True, _
- Optional CountCrlf As Integer = 1, Optional ShowInfoDialog As Boolean = False, Optional CallAdmin As Boolean = False)
- If CountCrlf < 1 Then CountCrlf = 1
- If ShowInfoDialog = True Then
- If CallAdmin = True Then Ausgabetext += vbCrLf & vbCrLf & "Bitte informieren Sie umgehend Ihren CAD-Admin!!"
- MsgBox(Ausgabetext, MsgBoxStyle.Critical, _DialogHeader)
- End If
- If _k_DebugStatus = True Then
- WriteLogData("Log: " & Ausgabetext, AppendData, CountCrlf)
- Else
- WriteLogData("**** Fehler ****", AppendData, False, 1)
- WriteLogData(Ausgabetext, AppendData:=AppendData, AddErrCount:=AddErrCount, CountCrlf:=CountCrlf)
- End If
- End Sub
Habe ich da vielleicht etwas übersehen - kann mir einer weiterhelfen?
Gruß Jan
PS: eine Ergänzung noch. Wenn ich mybase. eingebe, dann werden mir ALLE Funktionen aus der Oberklasse angeboten!!! Das verstehe ich irgendwie nochweniger.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jan99“ ()