[Lazarus] TPanel.ComponentCount

Flávio Etrusco flavio.etrusco at gmail.com
Tue Sep 4 22:06:36 CEST 2012


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.

-Flávio




More information about the Lazarus mailing list