[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]

    From: Lode Deleu <101612.1454@compuserve.com>

    > Is it possible to create an array of components? I'm using a LED component for a status display, and I'd like to be able to access it via:

    First of all, you'l need to declare the array:

      LED : array[1..10] of TLed;      (TLed being your led component type)
    if you would create the LED components dynamically, you could do this during a loop like this :

      for counter := 1 to 10 do
        begin
           LED[counter]:= TLED.Create;
           LED[counter].top := ...
           LED[counter].Left := ...
           LED[counter].Parent := Mainform;   {or something alike}
        end;
    If the components already exist on your form (visually designed), you could simply assign them to the array like this:

      leds := 0;
      for counter := 0 to Form.Componentcount do
        begin
           if (components[counter] is TLED) then
             begin
                inc(leds);
                LED[leds] := TLED(components[counter]);
             end
        end;
    This however leaves you with a random array of LED's, I suggest you give each LED a tag in the order they should be in the array, and then fill the array using the tag :

      for counter := 0 to Form.Componentcount do
        begin
           if (components[counter] is TLED) then
             begin
                LED[Component[counter].tag] := TLED(components[counter]);
             end
        end;
    if you need a two dimensional array, you'll need to find another trick to store the index, I've used the hint property a number of times to store additional information.

[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]