Page 3 of 4

Posted: Wed May 07, 2008 10:53 pm
by mk-soft
Update v0371

Bugfix Includes:
- Now check Includefile to constant "#PB_Compiler_Home" and with added "+" Strings

Please test it

GT :wink:

Posted: Wed May 07, 2008 11:08 pm
by SofT MANiAC
Thanks for update but it doesn't work...

Try to download
http://purebasic.fr/english/viewtopic.p ... sc&start=0

Next ->

Code: Select all

IncludePath #PB_Compiler_Home + "path_to_DirectX\"
XIncludeFile "d3dx9.pbi"
Class MyClass Extends BaseClass
EndClass
[COMPILER] Line 3: Syntax error!

Posted: Wed May 07, 2008 11:47 pm
by SofT MANiAC
and another ..

no parameters for constructor? :cry:

Posted: Wed May 07, 2008 11:47 pm
by mk-soft
I now know the probleme, IncludePath is not checked.

In the works.

Posted: Wed May 07, 2008 11:50 pm
by SofT MANiAC
mk-soft wrote:In the works.
good luck :!:

Posted: Thu May 08, 2008 12:21 am
by mk-soft
Update v0.372

Bugfix: Includefile and parse "IncludePath" added

Posted: Thu May 08, 2008 1:15 am
by SofT MANiAC
good support!

But another moment:

topfile.oop:

Code: Select all

...
Interface IMyClass Extends IUnknown
...
Translate( Translation.D3DXVECTOR2)
EndInterface
...
dx.pbi:

Code: Select all

...
structure D3DXVECTOR2
...
endstructure
main.pb:

Code: Select all

IncludeFile "dx.pbi"

class myclass extends baseclass
  Translation.D3DXVECTOR2
endclass
Of course...
Line XX: Structure not found: D3DXVECTOR2
(topfile.oop)

coz we can not use it before it was declared... ooops...

Posted: Thu May 08, 2008 12:20 pm
by SofT MANiAC
I think it's total deadlock for this concept..

Resident-files save the world? :)

Posted: Thu May 08, 2008 4:00 pm
by mk-soft
I´m work at time to solve this probleme

Posted: Fri May 09, 2008 12:18 pm
by mk-soft
There I try the scourecode do not change give it the problem the methods (interfaces) at the correct place to merge. At present the interfaces are merged into topfile. This is however with structures in the methods to be used the problem.
My solution would be " a macro; Module (Classname) " to define which the interface to the correct places placed.

That´s right?

Posted: Fri May 09, 2008 12:47 pm
by SofT MANiAC
need to try

Posted: Fri May 09, 2008 7:48 pm
by mk-soft
Update v0.38

Is not the best solution, but you can now use structures

Code: Select all

; Organization for OOP with structures

; All needed structures as first
Structure udtStruct
  value1.l
  value2.l
EndStructure

; All classes and methods
Class MyClass Extends BaseClass
  ; Attributes
  val1.s
  val2.udtStruct
  ; etc
EndClass 

Method MyClass_Function(*this.MyClass, *mystruc.udtStruct)
  With *this
  
  EndWith
EndMethod

; Create Object
*myObject.iMyClass = NewObject(MyClass)

*myObject\Function(MyData.udtStruct)

; Release Object
*myObject\Release()

P.S
We can declare procedures but not interfaces.
I hope fred implimented this

Posted: Mon May 12, 2008 5:15 pm
by mk-soft
Update v0.39

Now included interfaces at right position without change any included scourecode. We can now splitted any classes to differend files.

Sorry, one macro has changed. Examples
- Class MyClass Extends BaseClass -> Class(MyClass) ; keyword BaseClass not longer used
- Class SubClass Extends MyClass -> Class(SubClass, MyClass)

Chaos test code

Code: Select all

; Organization for OOP with structures

; Structures for MyClass ******************************************************
Structure udtStructMyClass
  value1.l
  value2.l
EndStructure

Class(MyClass)
  ; Attributes
  val1.s
  values.udtStructMyClass
  ; etc
EndClass

Method MyClass_Function(*this.MyClass, *mystruct.udtStructMyClass)
  With *this
    \values\value1 = *mystruct\value1
  EndWith
EndMethod

; Structures for SubClass *****************************************************
Structure udtStructSubClass
  value1.l
  value2.l
EndStructure

Class(SubClass)
  ; Attributes
  val1.s
  values.udtStructSubClass
  ; etc
EndClass

Method SubClass_Function(*this.MyClass, *mystruct.udtStructSubClass)
  With *this
    \values\value1 = *mystruct\value1
  EndWith
EndMethod

; test ************************************************************************

; Create Object
*myObject.iMyClass = NewObject(MyClass)
*myObject2.iSubClass = NewObject(SubClass)
*myObject\Function(MyData.udtStructMyClass)

; Release Object
*myObject\Release()
*myObject2\Release()
P.S. Update Linux Version v0.39 :wink:

Posted: Sun May 25, 2008 11:53 am
by mk-soft
Update v0.40

- Performance of Release Object
- Change internal name of baseclass

GT :wink:

Posted: Sat Sep 27, 2008 1:42 pm
by mk-soft
Update v0.41

- fixed DeleteObject for x64 compilations


I can´t tested because havn´t x64 os

GT :wink: