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