Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 21.09.2013, 15:19 Titel: mdTypes |
|
|
Bei diesem Projekt handelt es sich um eine Sammlung von UDTs, die Java-Interfaces und -Klassen nachempfunden sind. Im Paket enthalten ist eine Ordnerstruktur mit den UDTs, eine ReadMe mit Installationshinweisen und ein Ordner voller Beispielcodes.
Hervorzuheben sind dabei die Collection-Types, bei denen es sich um generische Listen handelt. Hiermit lassen sich nahezu alle FreeBASIC-Datentypen (Ausnahme bildet Integer - es sollte stattdessen Long oder mdInteger verwendet werden) sowie eigene UDTs in Listen und Maps ablegen und verwalten.
Ein Beispiel mit eigener Klasse in einer mdList:
Code: | #Include Once "md/util/mdList.bi"
Type MyClass
Public:
Declare Constructor ()
Declare Constructor (ByVal value As Integer)
Declare Sub setMyVar (ByVal value As Integer)
Declare Function getMyVar () As Integer
Private:
As Integer myVar
End Type
'must have a default constructor or no explicit constructor at all!
Constructor MyClass ()
End Constructor
Constructor MyClass (ByVal value As Integer)
This.setMyVar(value)
End Constructor
Sub MyClass.setMyVar (ByVal value As Integer)
This.myVar = value
End Sub
Function MyClass.getMyVar () As Integer
Return This.myVar
End Function
'operator for comparision must exist!
Operator = (ByRef lhs As MyClass, ByRef rhs As MyClass) As Integer
Return lhs.getMyVar() = rhs.getMyVar()
End Operator
mdListDeclare(MyClass)
Dim As mdList(MyClass) list
Dim As MyClass foo
foo.setMyVar(0) : list.add(foo)
foo.setMyVar(1) : list.add(foo)
foo.setMyVar(2) : list.add(foo)
foo.setMyVar(3) : list.add(foo)
foo.setMyVar(0) : list.add(foo)
Print "Output 1:"
For i As Integer = 0 To list.size() - 1
Print list.get(i).getMyVar()
Next
Print
Print "Output 2:"
Dim As MyClass element
ForEach(MyClass, element In list)
Print element.getMyVar()
NextEach
Print
Print "Output 3:"
Dim As mdIterator(MyClass) iterator = list.iterator()
While iterator.hasNext()
Print iterator.nex().getMyVar()
Wend
Print
Sleep |
Die Projektseite und die Downloads finden sich im FreeBASIC-Portal unter:
http://www.freebasic-portal.de/downloads/bibliotheken/mdtypes-308.html |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 17.04.2014, 17:14 Titel: |
|
|
Nun gibt es ein erstes Tutorial (englisch): Using mdTypes |
|
Nach oben |
|
|
Domso
Anmeldungsdatum: 02.02.2011 Beiträge: 109
|
Verfasst am: 14.06.2014, 16:43 Titel: |
|
|
was mit persönlich bisschen fehlt, ist das überschreiben von methoden,
oder habe ich das nur übersehen? |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 14.06.2014, 17:05 Titel: |
|
|
mdTypes nutzt Vererbung und Polymorphismus. D. h. du kannst von einer md-Klasse erben und eigene Methoden hinzufügen oder bestehende überschreiben.
Ein etwas älteres Beispiel dazu findet sich im NoPaste: http://www.freebasic-portal.de/porticula/nemoredslist-1666.html
In diesem Beispiel wird die toString() Methode geändert. |
|
Nach oben |
|
|
Domso
Anmeldungsdatum: 02.02.2011 Beiträge: 109
|
Verfasst am: 14.06.2014, 17:33 Titel: |
|
|
oh, habe ich wohl übersehen
coole sache |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 05.09.2014, 19:20 Titel: |
|
|
mdTypes bietet nun auch eine Persistenzschicht, um Daten und Listen von Daten in Datenbanken unterzubringen. Momentan werden MySQL und SQLite unterstützt. Zusätzlich gibt es eine einfache textbasierte mdTypesPersistence.
Ein paar mehr Infos gibt es im Tutorial unter: http://www.freebasic-portal.de/tutorials/using-mdtypes-en-108-s9.html |
|
Nach oben |
|
|
|