Announcement

Collapse
No announcement yet.

Proof of Concept Code

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Elias Montoya
    replied
    Originally posted by StanHelton View Post
    Would you mind posting an example? I don't see it now, but I know I need to learn how to do it.
    Example for what? Storing many bollean flags in 1 variable? Sure here it is:

    Code:
    %ST_CODE_USESUNICODE  = &H0000001
    %ST_CODE_USESFORMS    = &H0000002
    %ST_CODE_SOMEOTHERVAR = &H0000004
    
    LOCAL Flags AS LONG
    
    ' Add one boolean flag to the variable
    &Flags = &Flags OR %ST_CODE_USESUNICODE
    
    ' Add one boolean flag to the variable
    &Flags = &Flags OR %ST_CODE_USESFORMS 
    
    ' Remove one boolean flag to the variable
    &Flags = &Flags AND NOT %ST_CODE_SOMEOTHERVAR
    
    
    ' Check one of the flags
    
    IF ISTRUE((&Flags AND %ST_CODE_USESFORMS) = %ST_CODE_USESFORMS) THEN
    
    ' This flag is set to ON.
    
    END IF
    If you were asking for an example for converting a VB file to PB, i still dont have any, but i have lots of functions for text formatting. Let me know if you need them.

    Leave a comment:


  • Fred Harris
    replied
    I could be wrong about this, but I kind of expect that using a 32 bit long to store what essentially amounts to 1 bit of information (%TRUE / %FALSE), while wasteful of space is probably faster/more efficient than packing bits or even using a byte variable. I'm just basing that idea on the DOS asm code I used to do years ago where you had to add Byte Ptr modifiers to asm statements if you wanted to access anything besides the native 16 bit size.

    If in the fullness of time we can put together a really high quality error free or nearly error free program that sucks in vb code at one end and spits out perfect pb code one millionth of a second later, followed by a 'Welcome To PowerBASIC' message, well then I'm all for making it as efficient and fast and non-wasteful as can be, even if it takes packing bit variables. But until that time I don't think I'm too worried about it! Actually at this point its running too fast. I don't even get to see the results of my MousePtr 11 call when you click the button!

    Leave a comment:


  • StanHelton
    replied
    Originally posted by Elias Montoya View Post
    I was talking only about boolean flags. ID's and other variables should be
    stored in their own variable.

    The concept has never been a mistery to me, i know it can be converted.

    Would you mind posting an example? I don't see it now, but I know I need to learn how to do it.

    Leave a comment:


  • Elias Montoya
    replied
    Originally posted by StanHelton View Post
    ...The control ID is a DWORD in the OS so maintaining multiple flags in a single variable might corrupt the ID. When I tried the OR method, I could not identify a constant value that did not get confused either in the ID or the count.

    Stan
    I was talking only about boolean flags. ID's and other variables should be
    stored in their own variable.

    The concept has never been a mistery to me, i know it can be converted.

    Leave a comment:


  • Brian Chirgwin
    replied
    Originally posted by StanHelton View Post

    Daniel Corbier has graciously offered to let us use his uCalc Language Builder as a project tool free of charge.

    Stan
    I've looked at Danial Corbier uCalc Language Builder and thought about it for this project. The use of uCalc LB can create an interesting twist. The VB code itself could be executed at runtime. A VB interpreter. Include the VB code as string resources or data statements and execute the code at runtime. Of course, this would not be useful in terms of having VB code converted into PB, but it might be useful in getting the more incompatible VB code to run at all.

    Leave a comment:


  • StanHelton
    replied
    Originally posted by Elias Montoya View Post
    The code seems a little verbose to me.

    Why not creating the resulting code in memory and then save 1 single line of code to
    file instead of saving line by line?

    Also... the types, 1 LONG variable for each flag? why not creating couple longs
    and adding flag states using the OR operator?


    My reasoning: Limiting myself to DDT (no SDK) I found that the MsgBoxCount can be almost any number because the Windows OS makes numerous focus calls not related to any user action. The control ID is a DWORD in the OS so maintaining multiple flags in a single variable might corrupt the ID. When I tried the OR method, I could not identify a constant value that did not get confused either in the ID or the count.

    Stan

    Leave a comment:


  • StanHelton
    replied
    Originally posted by Fred Harris View Post
    Very shortly I'll post my continued work on converting the vb code. I've completed a methodology to convert object calls to PB function calls. Came up with some interesting ideas in the process, and am anxuous to share them, get feedback etc. Have created a symbol table. That former example now produces runnable code without commenting anything out. Havn't tried it yet, but I believe it will be easily extensible to Listboxes, combo boxes, etc. Glad to here you've got a DDT implementation in the works Stan.
    You have developed a methodology already? Great work.

    Daniel Corbier has graciously offered to let us use his uCalc Language Builder as a project tool free of charge. He's also agreed to put together some examples of how to use it if we can supply him with the VB6 source and the desired PB source. If you have something he could work with now, he might be able to provide us with a very useful tool. A working methodology is just the kind of thing he asked me for.

    Can you post that methodology here? and maybe the symbol table too?

    Stan
    Last edited by StanHelton; 10 Jun 2008, 09:44 AM. Reason: typos

    Leave a comment:


  • Fred Harris
    replied
    continiuing the work...

    Very shortly I'll post my continued work on converting the vb code. I've completed a methodology to convert object calls to PB function calls. Came up with some interesting ideas in the process, and am anxuous to share them, get feedback etc. Have created a symbol table. That former example now produces runnable code without commenting anything out. Havn't tried it yet, but I believe it will be easily extensible to Listboxes, combo boxes, etc. Glad to here you've got a DDT implementation in the works Stan.

    Leave a comment:


  • StanHelton
    replied
    Originally posted by Elias Montoya View Post
    The code seems a little verbose to me.

    Why not creating the resulting code in memory and then save 1 single line of code to
    file instead of saving line by line?

    Also... the types, 1 LONG variable for each flag? why not creating couple longs
    and adding flag states using the OR operator?

    You're correct. However, all I wanted to do here was prove that it can be done in DDT. The code has not been refactored as it should be for any inclusion in the Converter.


    Originally posted by Chris Holbrook View Post
    Maybe, but it's not there to be an example of coding style, but to "prove the concept".

    So we know that you can convert a simple VB program to a simple PB program.

    Now that some issues have been raised regarding OOP and variable types, should we look at POC for the approach chosen for each of these topics? I think that these will be harder tests to pass, BTW!

    It also raises the question of specifying the tests for each technical issue. Designing the tests correctly is just as important as writing the code. It will need first for the objective to be defined then someone with in-depth VB knowledge to take on the task. I would love to do this (honest) but I don't have the VB!

    Somewhere Stan will have a list of "conversion technical issues" which could be shared, discussed and used as a driver for this.

    Rui Rodrigues tells me he is better at VB than PB. I have asked him to produce some VB6 samples we can use for the process. I have also asked Fred Harris to contact Jose Roca about using some of his research to build a Variant wrapper specifically for the Converter.

    I have the data, but have not compiled the 'technical issues' list. Thanks for the reminder. I'll get that list posted today.

    Stan

    Leave a comment:


  • Chris Holbrook
    replied
    Originally posted by Elias Montoya View Post
    The code seems a little verbose to me.
    Maybe, but it's not there to be an example of coding style, but to "prove the concept".

    So we know that you can convert a simple VB program to a simple PB program.

    Now that some issues have been raised regarding OOP and variable types, should we look at POC for the approach chosen for each of these topics? I think that these will be harder tests to pass, BTW!

    It also raises the question of specifying the tests for each technical issue. Designing the tests correctly is just as important as writing the code. It will need first for the objective to be defined then someone with in-depth VB knowledge to take on the task. I would love to do this (honest) but I don't have the VB!

    Somewhere Stan will have a list of "conversion technical issues" which could be shared, discussed and used as a driver for this.

    Leave a comment:


  • Elias Montoya
    replied
    The code seems a little verbose to me.

    Why not creating the resulting code in memory and then save 1 single line of code to
    file instead of saving line by line?

    Also... the types, 1 LONG variable for each flag? why not creating couple longs
    and adding flag states using the OR operator?

    Leave a comment:


  • StanHelton
    started a topic Proof of Concept Code

    Proof of Concept Code

    This VB6 Proof-of-Concept code was written by Fred Harris. I wrote the PB source using DDT.

    Stan
    Last edited by StanHelton; 24 Jun 2008, 03:57 PM.
Working...
X