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