>>>Wow, thanks a lot - I didn't know that was possible. I always used the Refresh() event, but that looks clumsy compared to just assigning the ControlSource.
>>
>>The side effect is that the control become Read-Only. It is a bug for me.
>
>I don't think this is a bug. I mean, what would you expect?
>
>You can assign a value to a variable, but not to an arbitrary expression.
>
>For instance, the following is a valid assignment:
>
>
>x = a + 1
>
>
>But the following is not:
>
>
>x + y = a + 1
>
>
>I mean, where should "a + 1" in this example be copied to?
>
>As I see it, the case is similar for the ControlSource, which implies a "store" or a "replace", depending on the case.
I don't agree.
The control is not a variable, it is a two way visual data interface
( user : read with eyes write with the keyboard and the Mouse)
( ControlSource : read with eval("Controlsource") write with a copy Value into the ControlSource )
I'm a developer and I want a full control of the four operations!
Then, when the Control read the ControlSource it refresh the .Value ( GotFocus,Refresh,valid,...),
but if I set ReadOnly = .F. the the User is free to update the Value,
when controlSource= "(exp)" VFP must execute this sequence:
This open a lot of data input possibilities.
Example: field = datatime visual the date part only
ControlSource = "TTOD(alias.field)"
REPLACE IN alias field WITH m.this.Value
Now, try to implement date part input into a grid.
I have work one year for destroy the VFP ControlSource logic.
Now I have a true visual data input/output interface.