December update

A short message to inform you of things we are working on this moment.

We expect a new FOX release of the product by the end of next week. A public release will follow short before Christmas


15 comments

  • [/quote]
    If oServer is declared as DataServer then the method SetOrder is not available. So this will not compile.

    Robert[/quote]
    Now you lost me. I thought the IS clause guarantees, that the next line ONLY gets called, if the type is correct, so, why shouldn't that compile?
    In your #2 sample you are tricking the compiler to accept your dataserver object, so, if trickery is needed anyway, why the need for obscure code?

    Karl[/quote]

    Hi Karl,

    at least with the 2.0.0.7 compiler something like

    METHOD PshBottom()
    	
     IF SELF:server IS checkbox 
     	SELF:server:Gaga()
     	
     ENDIF 
     
     SELF:server:GoBottom()
    	
     RETURN SELF 
    
    


    is resolved at *compile* time, and because the compiler doesnΓö¼Γöñt know whatΓö¼Γöñs behind self:server this warning is thrown:

    warning XS0183: The given expression is always of the provided ('VO.CheckBox') type

    so the code between if ... endif is executed.


    When you examine the assembly with ilspy you see:


    public virtual method PshBottom([CompilerGenerated] Xs_0024Args params __Usual[] ) as __Usual
    //FUNCTION PshBottom() AS __Usual
    local num as Long
    local server as __Usual
    //
    num := IIF((Xs_0024Args != null) , Xs_0024Args:Length , 0)
    server := Server
    if (true)
    Functions.__InternalSend(Server, "Gaga")
    endif
    Functions.__InternalSend(Server, "GoBottom")
    return self



    regards
    Karl-Heinz
  • [quote name="Karl Faller"]Robert,
    Now you lost me. I thought the IS clause guarantees, that the next line ONLY gets called, if the type is correct, so, why shouldn't that compile?
    In your #2 sample you are tricking the compiler to accept your dataserver object, so, if trickery is needed anyway, why the need for obscure code?
    [/quote]

    This is the risk of examples out of context. I will post a more detailed example on the forums later.

    Robert
  • [quote name="Karl-Heinz Rauscher"]/quote]

    at least with the 2.0.0.7 compiler something like

    METHOD PshBottom()
    	
     IF SELF:server IS checkbox 
     	SELF:server:Gaga()
     	
     ENDIF 
     
     SELF:server:GoBottom()
    	
     RETURN SELF 
    
    


    is resolved at *compile* time, and because the compiler doesnΓö¼Γöñt know whatΓö¼Γöñs behind self:server this warning is thrown:

    warning XS0183: The given expression is always of the provided ('VO.CheckBox') type

    so the code between if ... endif is executed.


    When you examine the assembly with ilspy you see:


    public virtual method PshBottom([CompilerGenerated] Xs_0024Args params __Usual[] ) as __Usual
    //FUNCTION PshBottom() AS __Usual
    local num as Long
    local server as __Usual
    //
    num := IIF((Xs_0024Args != null) , Xs_0024Args:Length , 0)
    server := Server
    if (true)
    Functions.__InternalSend(Server, "Gaga")
    endif
    Functions.__InternalSend(Server, "GoBottom")
    return self[/quote]
    Hopefully it's because it is friday afternoon, or Robert's remark re out ouf context hits the mark, but what's the link between your first sentence and the warning? What ensures that server is always of type checkbox?

    Karl




  • Hopefully it's because it is friday afternoon





    didnΓö¼Γöñt read the warning carefully - seems I also need a break.




    , or Robert's remark re out ouf context hits the mark, but what's the link between your first sentence and the warning? What ensures that server is always of type checkbox?



    Karl


    good question - i donΓö¼Γöñt know. itΓö¼Γöñs the first time iΓö¼Γöñve tried such a "expression IS datatype" ...

    regards
    Karl-Heinz
  • Hi devteam,
    Good job!
    But most of all we are waiting for DBFCDX and MEMVAR. Without them, we cannot start transferring projects from VO.

    Best regards,
    Leonid.