ich bin gerade dabei zu verstehen wie genau Objektorientierte Programmierung in Xbase++ abläuft. Ich weiß das ich mit Objekt1 := Klasse1:New() eine Objekt der Klasse kreieren kann. Allerdings schlägt der Aufruf fehl, wenn ich den Code nur ausführen will innerhalb eines XbPPushButton Activates.
Ich habe eine Klasse in einer PRG Datei:
Code: Alles auswählen
CLASS Primzahl
EXPORTED:
METHOD init
ENDCLASS
METHOD init()
MsgBox("test")
Return self
Code: Alles auswählen
******************************************************************************
METHOD NewForm:create( oParent, oOwner, aPos, aSize, aPP, lVisible )
* Methode der Superklasse rufen
::_NewForm:create( oParent, oOwner, aPos, aSize, aPP, lVisible )
oPrimZahl := Primzahl():New()
oPrimZahl:init() //<-- Hier funktioniert der aufruf
::ende:activate := {|| ::anfangsBereich:clear(), ::endBereich:clear(), ::ausgabeFeld:clear()} //XbPushButton Event
::start:activate :={|| oPrimZahl:init() } // <-- Hier kommt der Fehler (XbpPushButton Event)
* Formular anzeigen
::show()
RETURN self
während weiter Oben der aufruf ganz Normal funktioniert. Ich kenne es normalerweise in Java, das wenn ich ein Objekt einer Klasse kreiere, ich danach den vollen Zugriff auf die Methoden der Klasse habe. Habe ich da was falsch verstanden? Würde man das in Xbase anders implementieren?
Ich habe mir überlegt auch eine dritte Testklasse zu schreiben mit einer Main Methode die die Objekte Klasse NewForm (Kreiert vom Form Designer Class Code) und der Klasse Primzahl kreiert und ihre Methoden aufruft.
Die Klassen sind alle in einzelnen *.PRGs abgespeichert worden.
Vielen lieben Dank im vorraus für eure Antworten!
Gruß
Ali