Code: Alles auswählen
Interface ITEST1
a()
b()
c()
EndInterface
Interface ITEST2
d()
e()
f()
Test1.ITEST1
EndInterface
Define Test.ITEST2
Debug Test\Test1\a()Thxs
Josh
Code: Alles auswählen
Interface ITEST1
a()
b()
c()
EndInterface
Interface ITEST2
d()
e()
f()
Test1.ITEST1
EndInterface
Define Test.ITEST2
Debug Test\Test1\a()Die einzige Möglichkeit ist die, dass eine Methode ein Interface zurückgibt:PureBasic Hilfe von [url=http://www.purebasic.com/german/documentation/reference/interfaces.html]Interface[/url] hat geschrieben: Interface <Name> [Extends <Name>]
<Methode[.<Typ>]()>
...
EndInterface
Code: Alles auswählen
EnableExplicit
Interface ITEST1
a()
b()
c()
EndInterface
Interface ITEST2
d()
e()
f()
GetObjectTest1()
EndInterface
Define oTest2.ITEST2
Define oTest1.ITEST1
oTest1 = oTest2\GetObjectTest1()
oTest1\a()Code: Alles auswählen
Prototype.i Zero()
Prototype.i One(a.i)
Structure mySubClass_new
a.Zero
b.One
EndStructure
Structure myClass_new
a.Zero
b.One
d.mySubClass_new
EndStructure
Procedure.i Function_Zero()
ProcedureReturn 5
EndProcedure
Procedure.i Function_One(a.i)
ProcedureReturn -2 * a
EndProcedure
Procedure.i Function_Zero_Sub()
ProcedureReturn 10
EndProcedure
Procedure.i Function_One_Sub(a.i)
ProcedureReturn a
EndProcedure
Procedure myClass_new()
Protected *this.myClass_new = AllocateMemory(SizeOf(myClass_new))
If (Not *this)
ProcedureReturn 0
EndIf
With *this
\a = @Function_Zero()
\b = @Function_One()
\d\a = @Function_Zero_Sub()
\d\b = @Function_One_Sub()
EndWith
ProcedureReturn *this
EndProcedure
Define *object.myClass_new = myClass_new()
Debug *object\a()
Debug *object\b(1)
Debug *object\d\a()
Debug *object\d\b(1)Code: Alles auswählen
Interface ITEST1
a()
b()
c()
EndInterface
Interface ITEST2 Extends ITEST1
d()
e()
f()
EndInterface
Define Test.ITEST2
Debug Test\a()Dein Beispiel entspricht:Bananenfreak hat geschrieben:Ich werfe mal meinen Hut mit in den Ring... Beim Beispiel klappt das
Code: Alles auswählen
Interface ITEST2
a()
b()
c()
d()
e()
f()
EndInterface
Define Test.ITEST2
Debug Test\a() 
Ja, aber eben ohne das Subinterface ^^Bananenfreak hat geschrieben:Ich werfe mal meinen Hut mit in den Ring... Beim Beispiel klappt das
Cool, danke. Genau das habe ich gesucht. Besonders wichtig war mir auch, dass die Kommandozeilenhilfe funktioniert.NicTheQuick hat geschrieben:Wie man sieht, ist das dann allerdings etwas komplizierter.