[Lazarus] Subroutine ?

Mattias Gaertner nc-gaertnma at netcologne.de
Wed Jul 31 11:00:43 CEST 2013


On Wed, 31 Jul 2013 10:04:49 +0200
Frederic Da Vitoria <davitofrg at gmail.com> wrote:

> 2013/7/31 Hans-Peter Diettrich <DrDiettrich1 at aol.com>
> 
> > Terry A. Haimann schrieb:
> >
> >  I am sure this is a dumb ?, but I want a subroutine that will change all
> >> of the components of a form to Enabled := False.
> >>
> >> How do I do this?
> >>
> >
> > This code disables all components owned by form:
> >
> > for i := 0 to form.Components.Count - 1 do
> >   form.Components[i].Enabled := False;
> >
> > Untested, eventually Components.Count has to be replaced by ComponentCount.
> >
> > DoDi
> 
> 
> Previous answers made me wonder: are you sure you meant "Component", not
> "Control"? If the form contains non-visual components, this could change
> the result.

TComponent does not have Enabled. So the above code does not work.
TControl has Enabled.
Disabling a control (e.g. no focus, some widgetsets draw them
gray) automatically disables child controls. So the easiest way
to disable all controls on a form is to set Form1.Enabled:=false.

Mattias


Mattias





More information about the Lazarus mailing list