Update StaticText Gadget

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

On 19/12/2008 at 05:49, xxxxxxxx wrote:

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

---------
Hi,

Can anyone help me? I have a for loop and would like to change the text of a statictext gadget( in a Dialog).

> \> for(LONG i = 0; i<10000; i++) \> { \>    SetString(gadget, LongToString(i)); \> }

But in this case, only the last element is written. What can I do to refresh it between the commands? The spin in the statusbar works fine and works without such message.

Bye... 🙂

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

On 19/12/2008 at 06:52, xxxxxxxx wrote:

Where is the loop located, from which method?

cheers,
Matthias

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

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

Its outside the dialog. In the example, I forgot to write the pointer.

I use my_dialog->SetString(my_gadget, "text");

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

On 19/12/2008 at 07:19, xxxxxxxx wrote:

strange, this seems to work fine here:

> \> #define ID_ASYNCTEST 1000955 \> \> #include "c4d.h" \> #include "c4d_symbols.h" \> \> \> class AsyncDialog : public GeDialog \> { \>      private: \>           C4DGadget \*gadget; \> \>      public: \>           AsyncDialog(void); \>           virtual Bool CreateLayout(void); \> \>           C4DGadget\* GetGadget() { return gadget; } \> }; \> \> AsyncDialog::AsyncDialog(void) \> { \>      gadget = NULL; \> } \> \> Bool AsyncDialog::CreateLayout(void) \> { \>      // first call the parent instance \>      Bool res = GeDialog::CreateLayout(); \> \>      SetTitle("GuiDemo C++"); \> \>      GroupBegin(0,BFH_SCALEFIT,0,0,"",0); \>      { \>           gadget = AddStaticText(1000,BFH_SCALEFIT,0,0,String("hello"),0); \>      } \>      GroupEnd(); \> \>      return res; \> } \> \> \> class AsyncTest : public CommandData \> { \>      private: \>           AsyncDialog dlg; \>      public: \>           virtual Bool Execute(BaseDocument \*doc); \>           virtual Bool RestoreLayout(void \*secret); \> }; \> \> Bool AsyncTest::Execute(BaseDocument \*doc) \> { \>      dlg.Open(TRUE,ID_ASYNCTEST,-1,-1); \> \>      C4DGadget \*gadget = NULL; \>      gadget = dlg.GetGadget(); \> \>      if(gadget) \>      { \>           LONG i=0; \> \>           for(i=0; i<10000; i++) \>           { \>                dlg.SetString(gadget, "number: "+LongToString(i)); \>           } \>      } \> \>      return TRUE; \> } \> \> Bool AsyncTest::RestoreLayout(void \*secret) \> { \>      return dlg.RestoreLayout(ID_ASYNCTEST,0,secret); \> } \> \> \> Bool RegisterAsyncTest(void) \> { \>      // decide by name if the plugin shall be registered - just for user convenience \>      String name=GeLoadString(IDS_ASYNCTEST); if (!name.Content()) return TRUE; \>      return RegisterCommandPlugin(ID_ASYNCTEST,name,0,NULL,String("C++ SDK Menu Test Plugin"),gNew AsyncTest); \> } \>

cheers,
Matthias

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

On 19/12/2008 at 07:25, xxxxxxxx wrote:

Hmmn.. when I execute your code. The problem is, I see the last number but I don't see that the number is increased like a counter.

Over the entire iteration, the static text contains "Hello" and the mouse pointer has the "busy" icon.

I will check that at home on windows.