scan if proper(alltrim(LanguageCol)) = 'Language00' else .grdLanguages.columncount = .grdLanguages.columncount + 1 lnCount = .grdLanguages.columncount with .grdLanguages.columns[m.lnCount] .name = 'col' + alltrim(csrLanguages.LanguageCol) .width = m.lnWidth .sparse = .f. .removeobject('text1') .newobject('cntLanguage','cntLanguage','Languages.vcx') .cntLanguage.visible = .t. .cntLanguage.lngField = 'Language.' + alltrim(csrLanguages.LanguageCol) .Header1.caption = alltrim(csrLanguages.language) .Header1.fontbold = .t. .Header1.alignment = 2 endwith endif endscancntLanguage consists of a textbox with a translation text and a button to invoke the form to change the value. It has the lngField_Assign method with the following code:
lparameters tlngField This.lngField = tlngField this.txtLanguage.ControlSource = this.lngFieldThe button has the following code although this is probably irrelevant to your situation.
LOCAL lcNewValue as String, lcOldValue as String lcOldValue = EVALUATE(this.parent.lngField) thisform.SetToolbarsEnabledTo(.F.) DO FORM Response_Edit WITH m.lcOldValue, 'Translation Edit' TO lcNewValue thisform.SetToolbarsEnabledTo(.T.) IF NOT m.lcNewValue == m.lcOldValue this.Parent.txtLanguage.Value = m.lcNewValue this.Parent.txtLanguage.Refresh() endifSo, it seems to me that simple assign method does this trick.