DOCUMENT:Q313196 18-FEB-2002 [foxpro] TITLE :PRB: SET DATE Resets SelStart Property in Text Boxes PRODUCT :Microsoft FoxPro PROD/VER::3.0,3.0b,5.0,5.0a,6.0,7.0 OPER/SYS: KEYWORDS:kbvfp300b kbvfp300bBUG kbvfp500a kbvfp500aBUG kbvfp600 kbvfp600bug kbGrpDSFox kbDSuppor ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual FoxPro for Windows, versions 7.0, 3.0, 3.0b, 5.0, 5.0a, 6.0 ------------------------------------------------------------------------------- SYMPTOMS ======== If you change the value of SET("DATE") while the focus is in a text box, the SelStart property is reset to 0, placing the insertion point before the first character. This occurs even if the form is in a different data session than the one in which you perform the SET DATE. RESOLUTION ========== You can partially work around this behavior by saving and restoring the SelStart property in the routine that performs the SET DATE. FOR i = 1 TO _SCREEN.FormCount loScreenForm = _SCREEN.Forms(i) IF TYPE("loScreenForm.ActiveControl.SelStart") = "N" loScreenForm.Tag = STR(loScreenForm.ActiveControl.SelStart) ENDIF ENDfor SET DATE TO (SET("DATE")) && This line will reset the SelStart property. FOR i = 1 TO _SCREEN.FormCount loScreenForm = _SCREEN.Forms(i) IF TYPE("loScreenForm.ActiveControl.SelStart") = "N" loScreenForm.ActiveControl.SelStart = VAL(loScreenForm.Tag) ENDIF ENDFOR MORE INFORMATION ================ Steps to Reproduce Behavior --------------------------- Run the following code to see the behavior in any version of Visual FoxPro: PUBLIC oForm oForm = CREATEOBJECT("Form") oForm.Show() oForm.AddObject("txtBox", "textbox") oForm.txtBox.Visible = .T. oForm.txtBox.SetFocus() oForm.txtBox.Value = "12345" oForm.txtBox.SelStart = LEN(oForm.txtBox.Value) ? oForm.txtBox.SelStart && will be 5 SET DATE TO (SET("DATE")) ? oForm.txtBox.SelStart && will be 0 NOTE: Although these examples all show the behavior within a form, you may also see this behavior when running a process from a timer that parses external data. Additional query words: ====================================================================== Keywords : kbvfp300b kbvfp300bBUG kbvfp500a kbvfp500aBUG kbvfp600 kbvfp600bug kbGrpDSFox kbDSupport kbCodeSnippet kbvfp700 _IK283 Technology : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP300b kbVFP500 kbVFP600 kbVFP700 kbVFP500a Version : :3.0,3.0b,5.0,5.0a,6.0,7.0 Issue type : kbprb Solution Type : kbnofix ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2002.