>>>>>>Define Class form1 As Form >>>>>> >>>>>> >>>>>> Top = 3 >>>>>> Left = 48 >>>>>> Height = 100 >>>>>> Width = 375 >>>>>> DoCreate = .T. >>>>>> ShowTips = .T. >>>>>> Caption = "Auto Complete" >>>>>> Name = "Form1" >>>>>> >>>>>> >>>>>> Add Object command1 As CommandButton With ; >>>>>> Top = 67, ; >>>>>> Left = 278, ; >>>>>> Height = 27, ; >>>>>> Width = 84, ; >>>>>> Caption = "Close", ; >>>>>> TabIndex = 2, ; >>>>>> Name = "Command1" >>>>>> >>>>>> >>>>>> Add Object label1 As Label With ; >>>>>> AutoSize = .T., ; >>>>>> Caption = "Name", ; >>>>>> Height = 17, ; >>>>>> Left = 60, ; >>>>>> Top = 25, ; >>>>>> Width = 55, ; >>>>>> TabIndex = 3, ; >>>>>> Name = "Label1" >>>>>> >>>>>> >>>>>> Add Object text1 As TextBox With ; >>>>>> Format = "K", ; >>>>>> Height = 23, ; >>>>>> Left = 120, ; >>>>>> SelectOnEntry = .T., ; >>>>>> TabIndex = 1, ; >>>>>> Top = 20, ; >>>>>> Width = 207, ; >>>>>> Name = "Text1" >>>>>> >>>>>> >>>>>> Procedure Load >>>>>> If Used("customer") >>>>>> Use In customer >>>>>> Endif >>>>>> **** Do not need to do this if there is an Index >>>>>> Set Exclusive On >>>>>> ************************************************ >>>>>> Select 0 >>>>>> Use Home()+"samples\data\customer.dbf" >>>>>> ************************************************ >>>>>> Index On company Tag company >>>>>> Set Order To Tag company >>>>>> ************************************************ >>>>>> Endproc >>>>>> >>>>>> >>>>>> Procedure command1.Click >>>>>> Thisform.Release >>>>>> Endproc >>>>>> >>>>>> >>>>>> Procedure text1.InteractiveChange >>>>>> With This >>>>>> If (Lastkey() >= 32 And Lastkey() <= 127) >>>>>> .nIDSelStart = Icase(.nIDSelStart >= 0 And Lastkey() = 127,.nIDSelStart - 1,; >>>>>> .nIDSelStart < 0,0,; >>>>>> .nIDSelStart + 1) >>>>>> Select customer >>>>>> coldtag = Tag() >>>>>> Set Order To Tag company >>>>>> Locate For Substr(Alltrim(Upper(customer.company)),1,.nIDSelStart) = ; >>>>>> Upper(Substr(This.Value,1,.nIDSelStart)) >>>>>> ***** Could use a SEEK() as well >>>>>> If Found() >>>>>> This.Value = customer.company >>>>>> Else >>>>>> If !Empty(This.Value) >>>>>> .nIDSelStart = This.SelStart >>>>>> Else >>>>>> .nIDSelStart = 0 >>>>>> Endif >>>>>> Endif >>>>>> This.SelStart = .nIDSelStart >>>>>> Set Order To Tag (coldtag) >>>>>> Endif >>>>>> Endwith >>>>>> This.SelLength = Iif(!Empty(This.Value),(Len(Alltrim(This.Value))-(This.nIDSelStart)),1) >>>>>> Endproc >>>>>> >>>>>> >>>>>> Procedure text1.Init >>>>>> If !Pemstatus(This,"nIDSelStart",5) >>>>>> This.AddProperty("nIDSelStart",0) >>>>>> Endif >>>>>> Endproc >>>>>> >>>>>> >>>>>>Enddefine >>>>>>