GeDialog commands (source them out)



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 01:32, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   10.5 
    Platform:      
    Language(s) :     C++  ;

    ---------
       Hi!

    I have a problem with the GeDialog. Can I source out some commands?

    For example

    > `

      
    \>  class myGUI : public GeDialog  
    \>  {  
    \>    
    \>  public:  
    \>    
    \>      void createLayout()  
    \>      {  
    \>          create_my_own_gui();  
    \>      }  
    \>    
    \>  }  
    \>    
    \>    
    \>    
    \>  void create_my_own_gui()  
    \>  {  
    \>  AddStaticText(....);  
    \>  }  
    \>  
    

    `

    In this case, my compiler reports "Cannot use AddStaticText without an object."

    What can I do? Thanks :)



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 02:11, xxxxxxxx wrote:

    AddStaticText() is a memberfunction of the class GeDialog, so your new function create_my_own_gui() should be a member of your derived class myGUI.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 02:12, xxxxxxxx wrote:

    Hi! :)

    Yes, you're right, the problem is, I have to source the memberfunctions out of the hole class... :-/



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 02:26, xxxxxxxx wrote:

    You could try declaring create_my_own_gui() as a friend in your class myGUI, then it should have access to its members, not sure if it will work though:

    class myGUI : public GeDialog
    {

    public:
        
        friend void create_my_own_gui();

    void createLayout()
        {
            create_my_own_gui();
        }
    }

    void create_my_own_gui()
    {
    AddStaticText(....);
    }

    If it doesnt work, try something like:
    (function still declared as a friend)
    void create_my_own_gui()
    {
    myGUI test;
    test.AddStaticText(....);
    }



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 02:41, xxxxxxxx wrote:

    Ah! Thats a good idea. I will give it a try.. Thanks :)

    I give feedback on success..



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 03:29, xxxxxxxx wrote:

    Hi! :)

    Now it works. I use this way:

    void create_my_own_gui(myGUI *t)
    {
    if(!t) return;

    t->AddStaticText(....);
    }



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 15/07/2008 at 10:44, xxxxxxxx wrote:

    CreateLayout() is a virtual/overloadable method of the GeDialog class, so don't bother with using your own name, just overload the original function...

        
        
          
        class myGUI : public GeDialog  
        {  
        public:  
            virtual Bool CreateLayout(void);  
        }  
          
        Bool myGUI::CreateLayout(void)  
        {  
            AddStaticText(....);  
            ...etc...  
            return true;  
        }  
        
    

    ...if you look in the SDK docs for the GeDialog class (as well as numerous others), you'll see several methods with 'virtual' tacked in front, sometimes with the comment:  "//Functions to override" ...you can override any of those that you need to when you derive from that class.


Log in to reply