Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

mdTypes

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 21.09.2013, 15:19    Titel: mdTypes Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 17.04.2014, 17:14    Titel: Antworten mit Zitat

Nun gibt es ein erstes Tutorial (englisch): Using mdTypes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Domso



Anmeldungsdatum: 02.02.2011
Beiträge: 109

BeitragVerfasst am: 14.06.2014, 16:43    Titel: Antworten mit Zitat

was mit persönlich bisschen fehlt, ist das überschreiben von methoden,
oder habe ich das nur übersehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 14.06.2014, 17:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Domso



Anmeldungsdatum: 02.02.2011
Beiträge: 109

BeitragVerfasst am: 14.06.2014, 17:33    Titel: Antworten mit Zitat

oh, habe ich wohl übersehen mit den Augen rollen

coole sache
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 05.09.2014, 19:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz