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