How to access button objects in an array of buttons?

For questions and postings not covered by the other forums
ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

How to access button objects in an array of buttons?

Postby ConvertFromOldNGs » Fri Aug 07, 2009 1:14 pm

by Eric Apperley >> Wed, 7 Nov 2007 23:16:49 GMT

Let's say I have 6 buttons and I need to do something to each, e.g. change the colour of each button. I would like to use a loop of course, but I don't know how to address each button...

In Delphi or VB.Net I'd iterate through the collection of controls of type button .

Its probably just as simple in JADE. Can someone give me a wee code snippet to show how to do this?

Thanks,
Eric

ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Re: How to access button objects in an array of buttons?

Postby ConvertFromOldNGs » Fri Aug 07, 2009 1:14 pm

by BeeJay >> Thu, 8 Nov 2007 0:30:53 GMT

Form::controlCount and Form::controls should allow you to achieve the desired result. Here's a simple example of one way you might achieve the desired result:

vars
controlIndex : Integer ;
ctl : Control ;

begin
foreach controlIndex in 1 to self.controlCount do

ctl := self.controls( controlIndex );

if ctl.isKindOf( Button ) then
// Do something to the button
endif;

endforeach;

end;

ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Re: How to access button objects in an array of buttons?

Postby ConvertFromOldNGs » Fri Aug 07, 2009 1:14 pm

by Allistar >> Thu, 8 Nov 2007 0:48:07 GMT

Hi could always add the buttons to a collection held on the form, and then iterate through them at some point.

Adding buttons to the collection:

- define a property (allButtons) of type ControlArray to the form (make it "exclusive").
- in the "load" event on the form add the buttons to the array:

allButtons.add(btOne);
allButtons.add(btTwo);
allButtons.add(btThree);

Then when you need to iterate through them, do this:

vars
button: Button;
iter: Iterator;begin

iter := allButtons.createIterator();
while (iter.next(button)) do
button.foreColor := Green;
endwhile;
epilog
delete iter;
end;

--
A.

ConvertFromOldNGs
Posts: 5321
Joined: Wed Aug 05, 2009 5:19 pm

Re: How to access button objects in an array of buttons?

Postby ConvertFromOldNGs » Fri Aug 07, 2009 1:14 pm

by cnwjhp1 >> Thu, 8 Nov 2007 1:17:54 GMT

.....and if you are dynamically creating the controls with addControl or loadControl, you could add them into your collections as you create them.


Return to “General Discussion”

Who is online

Users browsing this forum: No registered users and 37 guests