[Lazarus] Opinions required on what the ReadOnly property should do for LCL controls.
Inoussa OUEDRAOGO
inoussa12 at gmail.com
Fri Feb 22 04:04:14 CET 2008
2008/2/22, Inoussa OUEDRAOGO <inoussa12 at gmail.com>:
> 2008/2/22, John <jszcmpr at netspace.net.au>:
>
> >
> > svaa wrote:
> > Hello:
> >
> > For me there is no doubt. When I set a control as readonly, I expect
> > that the user won't be able to change it at all.
> >
> > In fact, years ago I hacked rxlib to avoid pop a list when they where
> > readonly. Particulary if they are attached to a database, it's confusing
> > for the user to change it clicking the button but updating nothing. The
> > downside is that they won't be able to show the calendar, but I think it
> > is better than confusing user. If the popped calendar could show clearly
> > that is not changeable, it would be the best, but a low priority
> > enhacement. By the way, when I say TDateTimeEdit, I mean any control
> > with a combo etc.
> >
> > Anyhow, if you want people see that a control is not usable, it is
> > better to assign enable:=false. The pity of disabled controls it that
> > they are not easily readable.
> >
> > Sometimes I think that there should be three colors to inform the user
> > of the state of the control: enabled, disabled and readonly. Long time
> > ago I played with the idea of changing the Dataware controls to have a
> > yellow background when they where not editable (because they were
> > readonly or because the TDatasource was not autoedit or because the
> > underlaying table was readonly.)
> >
> > Just my 0.25 cents.
> >
> > Reagards
> > Santiago A.
> >
> > +1
> >
> > I usually change the colour or background colour of a control if it
> > *always* readonly, it would be great to have an easy way to do it. I
> > probably tend to disable a control if its mode changes, but it can still be
> > useful to distinguish between "valid, but read only" and "invalid in this
> > context".
> >
> > I think the difference between the two views depends on whether you see the
> > TDateEdit as two controls ( in which case I agree with Vincent) or a single
> > control, in which case I agree with Gerard.
> >
> > If it were two controls, you make the edit box readonly (to keystrokes),
> > but the button is changing it programatically. But if it is a single
> > control, readonly = readonly = readonly - no user changes of any kind.
> >
> > As it appears to only a single control - you can't disable the button
> > without disabling the whole control - I think I have to agree with Gerard
> >
> > cheers,
> > John Sunderland
> >
> >
> >
> >
> >
> > There's a discussion going on about TDateTimeEdit.ReadOnly in Mantis
> > report 10861.
> > It's not a technical discussion, it's more about what ReadOnly should
> > and shouldn't do.
> >
> > See. http://bugs.freepascal.org/view.php?id=10861
> >
> > The list is probably a better place to discuss this, so please read
> > the report and give your opinion here.
>
>
> IMHO, whenever "ReadOnly=True", user should not be able to modify the
> value, be it by
> the text edit or by the button. I use code like
> [code]
> for i := 0 to Pred(ContrloCount) do begin
> ct := Control[i];
> if IsPublishedProp(ct,'ReadOnly') then
> SetProp(ct,'ReadnOnly',False);
> end;
> [/code]
> to be sure the user cannot modify any value.
> Example : On a Edit form, I want the user to be able to modify
> certain properties ( "color of your car") depending on the value of
> other properties ( "Own a car" ).
So in edit style : "Readonly =False", but "Enable" depends on the
state of the object.
In view style, "ReadOnly = True", the user can just view the item;
Best regards.
--
Inoussa O.
More information about the Lazarus
mailing list