Ron_1st escribió: > On Thursday 28 May 2009, Jesus Guardon wrote: >> Hi all >> >> It seems a basic question, but I'm unable to get it to work. >> I need to enable/disable a group of mixed controls in the Main Form, but >> instead of doing individually, I'd prefer to do so by iterating. >> >> Following is the code I'm using and it gives an error "Wanted string, >> date or integer, got function instead" >> >> What I'm doing wrong? >> >> PUBLIC SUB btnQuick_Click() 'toggle button >> >> DIM hCtl AS Control >> >> IF btnQuick.Value = TRUE THEN >> FOR EACH hCtl IN FMain.Controls >> IF hCtl.Tag = "exclude" THEN hCtl.Enabled = FALSE >> 'DEBUG hCtl.Tag >> NEXT >> ELSE >> FOR EACH hCtl IN FMain.Controls >> IF hCtl.Tag = "exclude" THEN hCtl.Enabled = TRUE >> NEXT >> ENDIF >> >> END >> >> Regards >> >> Jesus >> > > Not every control will have a .Tag property could be one of the problems. > Same can be for the .Enabled property > Also using Tag for other purpose could do something bad. > Best would be to print the object type and .ID property for the control under > test > to see wich control has the problem. > > Controls written in gambas could be suspected I think. > Basicly spoken the method used does not look strange to me > and I did long time ago something like this the same way. > I found also a problem and had the exclude a few object by type > checking. As far I remember I was also using the .Tag property. > > > > Best regards, > > Ron_1st > Thanks, Ron_1st
As you stated, checking the type of the controls is needed. Now, it works as expected. PUBLIC SUB btnQuick_Click() 'toggle button DIM hCtl AS Control IF btnQuick.Value = TRUE THEN FOR EACH hCtl IN FMain.Controls IF hCtl IS TextBox OR hCtl IS ComboBox OR hCtl IS CheckBox OR hCtl IS ValueBox OR hCtl IS Button THEN IF hCtl.Tag = "exclude" THEN hCtl.Enabled = FALSE 'PRINT hCtl.Name, hCtl.Tag ENDIF NEXT ELSE FOR EACH hCtl IN FMain.Controls IF hCtl IS TextBox OR hCtl IS ComboBox OR hCtl IS CheckBox OR hCtl IS ValueBox OR hCtl IS Button THEN IF hCtl.Tag = "exclude" THEN hCtl.Enabled = TRUE ENDIF NEXT ENDIF END Best regards Jesus ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user