Von DataObject vererben

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1731
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Von DataObject vererben

Beitrag von andreas » Mi, 13. Jun 2018 11:57

Hallo,

ich möchte gerne eine neue Klasse erstellen, die von DataObject erbt und zus. Methoden und Eigenschaften hat. Leider funktioniert es nicht und die Initialisierung des Objektes bringt das Programm zum Absturz.

Hier ein Beispiel:

Code: Alles auswählen

CLASS Test FROM DataObject

   EXPORTED:

      METHOD Init
      METHOD SetField

ENDCLASS

METHOD Test:Init()

   SUPER:Init()

RETURN SELF

METHOD Test:SetField()

RETURN
Geht das Überhaupt?
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1731
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Re: Von DataObject vererben

Beitrag von andreas » Mi, 13. Jun 2018 11:59

Hier noch die Fehlermeldung:
oError:args :
-> VALTYPE: O CLASS: Test
-> VALTYPE: N VALUE: 3
-> VALTYPE: N VALUE: 3
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Interne Datenstrukturen besch„digt
oError:filename :
oError:genCode : 41
oError:operation : classDescribe
oError:osCode : 0
oError:severity : 2
oError:subCode : 5
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18109
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Von DataObject vererben

Beitrag von Manfred » Mi, 13. Jun 2018 12:00

bekomme ich auch.
Da bin ich ja mal gespannt.....
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7315
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Von DataObject vererben

Beitrag von Tom » Mi, 13. Jun 2018 13:06

Das widerspricht nach meinem Gefühl dem Konzept der DataObjects. Sie sind dynamisch, auch zur Laufzeit, weshalb Vererbung nur wenig Sinn hat.
Herzlich,
Tom

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1545
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Von DataObject vererben

Beitrag von Werner_Bayern » Mi, 13. Jun 2018 13:17

Servus,

ich meine irgendwo gelesen zu haben, dass das generell nicht geht, Klassen können nicht von DataObjects erben.
es grüßt euch

Werner

Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1731
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Re: Von DataObject vererben

Beitrag von andreas » Mi, 13. Jun 2018 13:31

Das ist schade!

Also bleibt nichts über, als eine Funktion zu schreiben, die einen DataObject mit zus. Methoden (DefineMethod über Funktionen) erzeugt und zurück gibt!
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13115
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Von DataObject vererben

Beitrag von Jan » Mi, 13. Jun 2018 13:52

Man muß bei DataObjects auch immer im Hinterkopf behalten, die wie Arrays per Referenz arbeiten. Könnte das eventuell zu dem Klassen-Problem führen? Sorry für die vielleicht blöde Frage, aber Ihr wisst ja: Ich und Klassen, zwei Welten prallen aufeinander.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14587
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Von DataObject vererben

Beitrag von brandelh » Mi, 13. Jun 2018 14:02

Oder man schreibt sich eine Klasse, die intern ein DataObject erzeugt und dieses benutzt und auch zurückgeben kann.
Gruß
Hubert

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7315
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Von DataObject vererben

Beitrag von Tom » Mi, 13. Jun 2018 14:47

DataObjects sind dynamisch und verändern ihre Struktur (Methoden und Instanzen) zur Laufzeit. Das ist ihre primäre Eigenschaft.

Mit oDataObject:Copy() erzeugt man eine Kopie des jeweiligen Objekts, leitet also quasi direkt ab. Diese Kopie kann man dann wieder zur Laufzeit ergänzen.
Herzlich,
Tom

Antworten