[Lazarus] TPanel.ComponentCount

ik idokan at gmail.com
Tue Sep 4 22:11:26 CEST 2012


On Tue, Sep 4, 2012 at 11:06 PM, Flávio Etrusco
<flavio.etrusco at gmail.com> wrote:
> On Tue, Sep 4, 2012 at 4:58 PM, patspiper <patspiper at gmail.com> wrote:
>> On 04/09/12 22:51, ik wrote:
>>>
>>> Hello,
>>>
>>> I'm trying to do the following code:
>>>
>>> for i := 0 to vispan.ComponentCount -1 do
>>>      begin
>>>        if vispan.Components[i] is TSpeedButton then
>>>          begin
>>>            if Assigned(TSpeedButton(vispan.Components[i]).Action) then
>>>              TAction(TSpeedButton(vispan.Components[i]).Action).Enabled :=
>>> True
>>>            else
>>>              TSpeedButton(vispan.Components[i]).Enabled := True;
>>>          end;
>>>      end;
>>>
>>> where vispan is a TPanel that get the current visible panel.
>>> However, it seems that ComponentCount is 0, even though it has 7
>>> components inside.
>>> The components does see the TPanel as it's parent, and so does the
>>> navigator.
>>>
>>> Is it a bug, or am I missing something here ?
>>>
>>> Lazarus 1.1 r38512M FPC 2.6.0 x86_64-linux-gtk 2
>>
>> Probably the form is the owner and not the panel.
>>
>> Stephano
>
> Definetely.
> What you're missing is that Component* properties refer to
> owner(ship). You should use ControlCount and Controls properties
> instead.

Thank you, that works

>
> -Flávio
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




More information about the Lazarus mailing list