>>>>>>>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 >>>>>>>