Aktuelle Zeit: 16.10.2018 09:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 50 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5  Nächste
Autor Nachricht
 Betreff des Beitrags: Modul BaseClass (Modul als Objekt)
BeitragVerfasst: 13.12.2015 22:30 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Wollte schon mein OOP-Precompiler auf Module umschreiben.
Stelle aber fest das es auch ohne Pre-Compiler zu lösen ist.

Mein Ziel ist es ohne viele neuen Schlüsselnamen ein Modul als ein Objekt zu programmieren . Ich glaube es ist mir gelungen.

Das Modul BaseClass bringt dazu alle erforderlichen Komponenten mit:
- Neue Klasse anlegen mit der BaseClass oder einer geerbten Klasse.
- Die Basisfunktion Object\Release() und Object\AddRef().
- Deklarierung von Aufruf Umgebung "Initalize" und "Dispose", auch bei Vererbung.
- Deklarierung von Methoden.

Es gibt nur wenige Regeln:
- Die Struktur für die Variablen (Properties) muss mit "Extends sBaseClass" oder mit "Extends sVererbung" definiert werden.
- Das Interface für die Methoden muss mit "Extends iBaseClass" oder mit "Extends iVererbung" definiert werden.
- Bei Vererbung muss die zu erbende Klasse eine BaseClass haben.

Update v1.21
- Geändert: NewClass(Extends=BaseClass) -> NewClass(CLassInterface, ClassExtends=BaseClass)
* Erster Parameter wird jetzt der Name des Interface angegeben.
* Vorteil: Es muss nicht mehr auf die Reihenfolge von den Methoden geachtet werden.
* CheckInterface kann das Interface besser kontrollieren.

- Debugger Funktion ShowClasses hinzugefügt
* Zeigt alles angelegten Interfaces an

Update v1.23
- RefCounter über Mutex geschützt

Update v1.24
- Hilfsmacro CloneObject hinzugefügt

Update v1.25
- Mutex Überprüfung hingefügt
- Macro LockObject und UnlockObject hinzugefügt

Update v1.26
- Hinzugefügt: QuerInterface für Kompatibilität zu Interface 'IUnknown'
-- Das Standardergebnis von QuerInterface ist die Konstante '#E_NoInterface' um für Linux und Mac kompatibel zu bleiben
-- Um die Methode 'QuerInterface' mit 'AsNewMethode' zu managen siehe das Beispiel 10 an. Link: http://www.purebasic.fr/english/viewtop ... 05#p503757
- Geändert: RefCounter beginnt jetzt mit Null

Update v1.27
- Bugfix BaseClass als DLL: Über Macros erstelle Codes in Prozeduren gekapselt, da auf machen Windows 7 (x64) Maschinen es zum Absturz führte
- Code bereinigt und interne Namen geändert

Update v1.28
- Interne BaseClass Management geändert wegen den regeln zur Erstellung von DLL´s

Update v1.29
- Dispose Object wird jetzt rückwärts verarbeitet.
- LinkedList Initalize() und Dispose() über Mutex geschützt da diese über alle Objekte der Klasse gemeinsam verwendet werden.
- ObjectCounter über alle Klassen hinzugefügt. Kann dazu verwendet werden um ein Programm oder eine DLL erst zu beenden wenn kein Object mehr referenziert ist. (If BaseClass::Class\ObjectCounter = 0 ...)

Update v1.31
- Rechtschreibkorrektur: Initalize -> Initialize

Update v1.32
- Geändert: Interne Initialize und Dispose von List auf Array geändert, zur Vermeidung von Thread-Blocking
- Hinzugefügt: Kurze Version von 'BaseClass' hinzugefügt 'Modul_BaseClassSmall'

Update v1.33
- Bugfix FreeMutex

Modul_BaseClass.pb
Code:
; Siehe Link


Update v1.07
- Bugfix FreeMutex

Update v1.08
- Die Klassen in der Procedure 'AddClass(...)' gekapselt
- Überprüfung der neuen Klasse in der Procedure 'AddClass(...)' erweitert
- Macros geändert da die Klassen nicht mehr global sind
- Geändert CheckInterface. Der Parameter wird nicht mehr benötigt
- Entfernt 'InitBaseClass()'
- Die Namen der Klassen sind nicht mehr 'Case Sensitive'


Modul_BaseClassSmall.pb
Code:
; Siehe Link

Link zum BaseClass :wink:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Zuletzt geändert von mk-soft am 25.01.2018 16:29, insgesamt 45-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (OOP)
BeitragVerfasst: 13.12.2015 22:31 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Beispiel
Code:
;-TOP

; Example 1

IncludeFile "Modul_BaseClass.pb"

; Erste Klasse

DeclareModule MyMath1
 
  UseModule BaseClass
 
  Structure sMyMath1 Extends sBaseClass
    Value.i
  EndStructure
 
  Interface iMyMath1 Extends iBaseClass
    Result.s()
    Add(Value)
    Sub(Value)
  EndInterface
 
  Declare NewMath1()
 
EndDeclareModule

Module MyMath1
 
  UseModule BaseClass
 
  NewClass(iMyMath1)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Init(*this.sMyMath1)
    Debug "Initialize MyMath1"
  EndProcedure : AsInitalizeObject(Init)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Destroy(*this.sMyMath1)
    Debug "Dispose MyMath1"   
  EndProcedure : AsDisposeObject(Destroy)
 
  ; ---------------------------------------------------------------------------
 
  Procedure.s Result(*this.sMyMath1)
    ProcedureReturn Str(*this\Value)
  EndProcedure : AsMethode(Result)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Add(*this.sMyMath1, Value = 0)
    *this\Value + Value
  EndProcedure : AsMethode(Add)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Sub(*this.sMyMath1, Value = 0) 
    *this\Value - Value
  EndProcedure : AsMethode(Sub)
 
  ; ---------------------------------------------------------------------------
 
  Procedure NewMath1()
    InitObject(sMyMath1) ; Mehr kommt hier nicht rein!
  EndProcedure
 
  ; ---------------------------------------------------------------------------
 
EndModule

; ***************************************************************************************

; Klasse Math 2 mit Vererbung Klasse Math 1

DeclareModule MyMath2
 
  UseModule MyMath1
 
  Structure sMyMath2 Extends sMyMath1
    ; Nothing
  EndStructure
 
  Interface iMyMath2 Extends iMyMath1
    Mul(Value)
    Div(Value)
  EndInterface
 
  Declare NewMath2()
 
EndDeclareModule

Module MyMath2
 
  EnableExplicit
 
  UseModule BaseClass
 
  NewClass(iMyMath2, MyMath1)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Init(*this.sMyMath2)
    Debug "Initialize MyMath2"
  EndProcedure : AsInitalizeObject(Init)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Dispose(*this.sMyMath2)
    Debug "Dispose MyMath2"   
  EndProcedure : AsDisposeObject(Dispose)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Mul(*this.sMyMath2, Value = 0)
    *this\Value * Value
  EndProcedure : AsMethode(Mul)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Div(*this.sMyMath2, Value = 1)
    *this\Value / Value
  EndProcedure : AsMethode(Div)
 
  ; ---------------------------------------------------------------------------
 
  Procedure.s Result(*this.sMyMath2)
    ProcedureReturn "$" + Hex(*this\Value)
  EndProcedure : AsNewMethode(Result) ; Methode Result() von geerbten Klasse ersetzen
   
  ; ---------------------------------------------------------------------------
 
  Procedure NewMath2()
    InitObject(sMyMath2) ; Mehr kommt hier nicht rein!
  EndProcedure
 
  CheckInterface(iMyMath2)
 
EndModule

; ***************************************************************************************

; ***************************************************************************************

Debug "Test Math 1"

UseModule MyMath1
Global *obj.iMyMath1 =NewMath1()
Debug "AddRef: " + *obj\AddRef()
Debug "AddRef: " + *obj\AddRef()
Debug "Release: " + *obj\Release()
Debug "Release: " + *obj\Release()
*obj\Add(200)
*obj\Sub(50)
Debug "Result = " + *obj\Result()
Debug "Release: " + *obj\Release()

Debug "Test Math 2"

UseModule MyMath2
Global *obj2.iMyMath2 = NewMath2()
Debug "AddRef: " + *obj2\AddRef()
Debug "AddRef: " + *obj2\AddRef()
Debug "Release: " + *obj2\Release()
Debug "Release: " + *obj2\Release()
*obj2\Add(200)
*obj2\Sub(50)
*obj2\Mul(100)
*obj2\Div(10)
Debug "Result = " + *obj2\Result()

Debug "Release: " + *obj2\Release()

CallDebugger

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Zuletzt geändert von mk-soft am 15.08.2016 23:14, insgesamt 6-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (OOP)
BeitragVerfasst: 13.12.2015 22:31 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Beispiel mit Parameter
Code:
;-TOP

; Example 6

IncludeFile "Modul_BaseClass.pb"

; *******************************************************************************

DeclareModule DataSet
 
  UseModule BaseClass
 
  ; Properties
  Structure sDataSet Extends sBaseClass
    *pData
    Count.i
    Array *pStr(0)
  EndStructure
 
  ; Methods
  Interface iDataSet Extends iBaseClass
    Get.s(index)
    Count()
  EndInterface
 
  UnuseModule BaseClass
 
  ; New Object
  Declare New(*pData)
 
EndDeclareModule

Module DataSet
 
  UseModule BaseClass
 
  NewClass(iDataSet)
 
  ; ---------------------------------------------------------------------------
 
  Procedure.s Get(*this.sDataSet, index)
    With *this
      If index < \Count
        ProcedureReturn PeekS(\pStr(index))
      Else
        ProcedureReturn ""
      EndIf
    EndWith
  EndProcedure : AsMethode(Get)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Count(*this.sDataSet)
    ProcedureReturn *this\Count
  EndProcedure : AsMethode(Count)
 
  ; ---------------------------------------------------------------------------
 
  Procedure Init(*this.sDataSet)
    Protected *pos, len, index
    With *this
      *pos = \pData
      Repeat
        len = MemoryStringLength(*pos)
        If len
          \Count + 1
          *pos + len * SizeOf(character) + SizeOf(character)
        Else
          Break
        EndIf
      ForEver
      Dim \pStr(\Count)
      *pos = \pData
      Repeat
        len = MemoryStringLength(*pos)
        If len
          \pStr(index) = *pos
          index + 1
          *pos + len * SizeOf(character) + SizeOf(character)
        Else
          Break
        EndIf
      ForEver
     
    EndWith
   
  EndProcedure : AsInitalizeObject(Init)
 
  ; ---------------------------------------------------------------------------
 
  Procedure New(*pData)
   
    Protected *obj.sDataSet
   
    AllocateObject(*obj, sDataSet)
    If *obj
      *obj\pData = *pData
    EndIf
    InitalizeObject(*obj)
   
    ProcedureReturn *obj
   
  EndProcedure
 
  ; ---------------------------------------------------------------------------
 
  CheckInterface(iDataSet)
 
EndModule

; *******************************************************************************

;- Test


BaseClass::ShowClasses()

Define.DataSet::iDataSet *set1, *set2

Debug "Data 1"
*set1 = DataSet::New(?DataSet1)
For i = 0 To *set1\Count() - 1
  Debug *set1\Get(i)
Next

Debug "----------------"
Debug "Data 2"
*set2 = DataSet::New(?DataSet2)
For i = 0 To *set2\Count() - 1
  Debug *set2\Get(i)
Next

CallDebugger
DataSection
  DataSet1:
  Data.s "Sontag"
  Data.s "Montag"
  Data.s "Dienstag"
  Data.s "Mittwoch"
  Data.s "Donnerstag"
  Data.s "Freitag"
  Data.s "Samstag"
  Data.i 0
 
  DataSet2:
  Data.s "Januar"
  Data.s "Februar"
  Data.s "März"
  Data.s "April"
  Data.s "Mai"
  Data.s "Juni"
  Data.s "Juli"
  Data.s "August"
  Data.s "September"
  Data.s "Oktober"
  Data.s "November"
  Data.s "Dezember"
  Data.i 0
EndDataSection

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Zuletzt geändert von mk-soft am 15.08.2016 23:15, insgesamt 4-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 22.12.2015 21:31 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Beispiel ...
Code:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Zuletzt geändert von mk-soft am 15.08.2016 14:34, insgesamt 6-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 23.12.2015 00:13 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Hallo mk-soft,

cool! Vielen Dank für deine Modulbasierte OOP Lösung.

OOP ist bisher mehr oder weniger an mir vorbei gegangen und ich habe mich erst vor kurzem dazu entschlossen mir OOP-basierte Entwicklungsumgebungen anzusehen, weil manche komplexe Aufgabe damit vermutlich besser zu lösen sind. Zumindest für mich persönlich, weil ich bei komplexen Programmen schnell den Fokus und den Überblick verliere.

Die Wahl fiel (unter anderem mit Hilfe des Forums) auf C++ und ich hatte mich bereits darauf eingelassen eine komplett neue Sprache zu erlernen, um mich mit dem Thema eingehender zu beschäftigen. Wie das so ist... aus Zeit- und Weihnachtsgründen habe ich diesbezüglich noch keine größeren Schritte unternommen.

Und jetzt sehe ich das hier. Hab mich sehr darüber gefreut - und zwar aus mehrerlei Hinsicht.

1) Deine Lösung kommt ohne einen PreCompiler aus! Ich hatte zur Zeit von PureBasic 5.00 schon mal versuchsweise eine der im Forum verfügbaren Precompiler-Lösungen getestet. Allerdings habe ich den weiteren Einsatz bei Auftreten der ersten Fehler bzw. "Eigenheiten" des Precompilers wieder verworfen. Grund: Ich war auf das Gutdünken des PreCompiler Programmierers angewiesen. Leider war das Projekt zu diesem Zeitpunkt beim Programmierer schon auf der "Sterbensliste" und ich sah mich leider nicht in der Lage den Fehler selbst auszumerzen.

2) Deine Lösung ist herrlich kompakt. Momentan verstehe ich zwar nur Bruchteile von den Internas (das mag auch mit an dem Bierchen liegen, dass ich mir heute Abend gegönnt habe :D), aber ich denke, dass ich die grundlegenden Funktionsprinzipien deiner OOP Lösung bei so einer überschaubaren Codelänge auch irgendwann in mein prozedurales Hirn hineingehämmert bekomme.

3) Möglicherweise bedeutet OOP viel mehr als Deine Lösung derzeit anbietet (ich kann das als ausschließlich prozedural arbeitender Programmierer nicht beurteilen), aber das, was deine Lösung bereits anbietet, sollte als Grundstein völlig ausreichen was meine Vorstellungen von erleichternder Programmierung in OOP angeht.

4) Es ist PureBasic. Wenn ich damit wirklich den Vorteil erlangen kann, den ich mir vom Einsatz einer zweiten OOP basierten Sprache erhofft habe (in meinem Fall hatte ich vor ein paar Tagen C++ gewählt), dann muss ich mich nicht etlichen neuen Problemen stellen: C++ lernen, in ein neues Programmierwerkzeug einarbeiten, rausfinden wie man C++ Code in ein PB Programm einbindet (z.B. als LIB), usw. Ich muss mich absolut nicht umgewöhnen und kann in meiner Lieblingssprache in der gewohnten IDE weiterarbeiten. Lediglich deine OOP-Syntax und besser noch die Internas deines OOP Moduls muss ich mir als neues Wissen aneignen. Und das sind derzeit gerade mal 4 Bildschirmseiten - so what!? Ich bin entzückt. :-)

Allerdings dazu noch eine Frage:

Wie schätzt du deinen code ein? Ist das alles schon wasserdicht ohne Memoryleaks oder vergessende Strukturen? Würdest du das Modul z.B. für ernsthafte Anwendungen nutzen oder ist das ganze eher als proof of concept anzusehen, also frühes alpha oder beta stadium? Ich kann das ehrlich gesagt nicht einschätzen.

Auf jeden Fall vielen Dank, dass du das teilst. :allright:

Edit:
Gleich noch eine Frage. Das Macro NewClass() entspricht der Prozedur AddClass(). Diese Prozedur gibt den Pointer von AddElement() zurück. Allerdings wird damit in Deinen Beispielen nichts weiter gemacht. Es wird lediglich NewClass() aufgerufen ohne den Rückgabewert irgendwo zu speichern. Ist dieser Wert nur irgend eine Testoption von dir oder hat er eine andere Bewandtnis?

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 50.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 23.12.2015 02:01 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Mein Ziel ist es ja nicht eine OOP-Sprache in Purebasic zu integrieren, sondern die Tipparbeit zu erleichtern.
Somit auch die Funktion der IDE wie Autovervollständigung und Anzeige der Procedure zu erhalten.

Purebasic bringt ja alles für Objektorientierung mit.
- Interfaces mit Vererbung. (Extends)
- Aufrufumgebung für Objekte

In der Hilfe für Interfaces fehlen allerdings funktionierende Beispiele.
Zu Objektorientierte Programmierung muss man wissen das beim Aufruf der Methode der erste Parameter der Zeiger auf das eigene Objekt ist. Der erste Eintrag ist immer der Zeiger auf die Funktionstabelle. Danach kommen die Daten für die Properties.

Bei den Verfahren in meiner BaseClass verwalte ich alle Objekte in einer Map. Diese kann man sich im Debugger auch anschauen.

Zu den fragen:
1. Es sollte zu keinen Speicherlecks führen. Auch bei der Verwendung von Listen und Map in den Properties.
Dazu wird zum anlegen des Objekts AllocateStructure und bei Release FreeStructure verwendet.

2. Das Konzept möchte ich so beibehalten und nur noch erweitern oder optimieren.

3. NewClass() wird ja ohne Parameter oder mit der zu Erbenen Objekt aufgerufen. AddClass(...) benötigt aber zur Verwaltungen der Objekte noch den Modulnamen. Dieser wird mit den Macro NewClass() automatisch mit den richten Modulname gesetzt.

Der Rückgabewert von NewClass() kann dazu verwendet werden ob das Object erfolgreich angelegt wurde.
Wird bei meinen kleine Beispielen etwas vernachlässigt.

So das war erstmal alles :wink:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 23.12.2015 11:03 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Besten Dank für die Beantwortung der Fragen. :allright:

Code:
2. Das Konzept möchte ich so beibehalten und nur noch erweitern oder optimieren.

Ich find's klasse, eben weil es (für mich) nicht zu überladen ist und ich weniger Zeit für die Einarbeitung brauche. Sicher muss ich mir alle Folgeklassen selbst schreiben, aber das soll ja kein Nachteil sein. :-)

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 50.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 23.12.2015 12:18 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Was noch irgendwann erweitert wird das die BaseClass auf die Schnittstelle Unknown angepasst wird (fehlt ja nicht mehr viel)
und die Schnittstelle Dispatch bereitstelle.
Somit lassen sich dann auch DLL´s erstellen die man z.B unter "VB-Script" verwenden kann.

Diese haben aber keine Auswirkung auf die bisherige Verwendung.

Bin aber zur Zeit meistens nur mit MacOS unterwegs.

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 25.12.2015 14:56 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Update v1.11
- Debugger Fehler AsNewMethode. Ruft bei fehlende geerbten Methode CallDebugger auf
- Debugger Info ClassList. Hinterlegt bei eingeschalteten Debugger die verwendeten Klassen in BaseClass mit ab.

:wink:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Modul BaseClass (Modul als Objekt programmieren)
BeitragVerfasst: 25.12.2015 23:59 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Vielen Dank. :allright: Soeben geupdatet. :)

_________________
"Never run a changing system!"
PB 5.62, OS: Windows 7 Pro x64, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 50.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 50 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye