İKİ DAKİKA GÜNCEL HABER MERKEZİ
Giriş Sayfanız Yapın  İKİ DAKİKA DA HER ŞEYDEN HABERDAR OLUN!    Sık Kullanılanlara Ekleyin
Otomatik Tamamlama
Yazar jawscod2
Projenize bu modülü ekleyerek kullandığınız textboxlara otomatik tamamlama özelliği katablirsiniz.
öncelikle projemize bir class modüle ekliyoruz ve adını “clsAutoComplete” olarak değiştiriyoruz.
Option Explicit
Const StringL As Long = 20 ‘Tamamlanacak max karakter uzunluğu
Private WithEvents TB As TextBox
Private NumberOfItems As Long, sItems As String, LastFill As String
Public OnlyAllowList As Boolean
Property Set AutoCompleteTextbox(T As TextBox)
Set TB = T
LastFill = “”
TB_GotFocus
End Property
Private Property Get Item(ByVal Index As Long) As String
Item = Mid$(sItems, Index * StringL + 1, StringL)
End Property
Public Sub AddItem(sInput As String) ‘tamamlama için metin eklenmesi
If Len(sInput) = 0 Then Exit Sub
Dim S As String * StringL
S = sInput
Dim I&
For I = 0 To NumberOfItems - 1
If Item(I) > S Then Exit For
Next
If I = NumberOfItems Then
sItems = sItems & S
Else
I = I * StringL
sItems = Left$(sItems, I) & S & Mid$(sItems, I + 1)
End If
NumberOfItems = NumberOfItems + 1
End Sub
Property Get GetList() As String()
Dim Arr() As String, I&
ReDim Arr(NumberOfItems - 1)
For I = 0 To NumberOfItems - 1
Arr(I) = RTrim$(Item(I))
Next
GetList = Arr
End Property
Sub ShowList() ‘eklenmiş olan metinlerin gösterimi
Dim I&, S$
For I = 0 To NumberOfItems - 1
S = S & vbCrLf & Item(I)
Next
MsgBox “Loaded lists consists of:” & vbCrLf & S, vbInformation
End Sub
Private Sub Class_Terminate()
Set TB = Nothing
End Sub
Private Sub TB_GotFocus()
TB.SelStart = 0
TB.SelLength = Len(TB.Text)
End Sub
Private Sub TB_KeyPress(KeyAscii As Integer) ‘texte girilen ‘karakterlerin kontrolü ve tamamlanması/tamamlanmaması
If KeyAscii 0 And Len(LastFill) > 0 Then
TB.Text = LastFill
End If
End Sub
‘modül kısmı bu kadar…….
Modülü ekledikten sonra formumuza 1 adet textbox , 1 adet buton ve 1 adette list box ekliyoruz.
Private Sub Form_Load()
Dim veri As String
Set AutoComplete = New clsAutoComplete ‘modüülümüzü tanımlıyoruz
‘1
Open App.Path & “\htad.hta” For Input As #1 ‘projenin ‘bulunduğu klasöre önceden htad.hta diye bir metin dosyası ‘acmayı unutmayın
Do Until EOF(1)
Input #1, veri
AutoComplete.AddItem veri ‘önceden kullanılmış ‘verileri dahil ediyoruz
Loop
Close #1
‘2
End Sub
formun loadunda önceden projenin bulunduğu klasöre kaydettiğimiz metin dosyasından verileri alıyoruz. Bunu veri tabanından cekipte yapmamız mümkün, yada acılısta hiçbir veri eklemeyebiliriz sadece program calısmaya basladıktan sonra yazılan metinleri dahil edebiliriz bu sekilde tamamlama yapmak istiyorsanız ‘1 ve ‘2 arasındaki kodları silebilirsiniz…
Private Sub Text1_GotFocus()
Set AutoComplete.AutoCompleteTextbox = Text1
End Sub
text1 e otomatik tamamlama özelliğinin atanması
Private Sub Command1_Click()
veri = Text1.Text
List1.AddItem veri
AutoComplete.AddItem veri
‘1
Open App.Path & “\htad.hta” For Append As #1
Print #1, veri
Close #1
‘2
Text1.SetFocus
End Sub
Butona tıkladığımızda texte girdiğimiz değer list1 e ve tamamlama yapılması için autocomplete e aktarılıyor. Bu verileri daha sonra, programı tekrar actığınızda modüle yüklemek için dosyaya yazdırıyoruz. Eklenen verilerin kontrolünü size bırakıyorum ben burada sürekli olarak girilen tüm değerleri ekledim…..
modülün showlist özelliğini kullanarak eklenmiş verileri görebilirsiniz buna göre eklemenin yapılıp yapılmayacağına karar verilebilirsiniz.
Bu yazı toplamda 82, bugün ise 0 kez görüntülenmiş
Random Posts
Aradığınız bu haberimizde yoksa, alttaki kutucuğa yazarak google yada sitemizde arama yapmak size yardımcı olabilir.
Yorum
Ayarlar
-
Şubat 12, 2008
-
Programlama
-
Yorum yapılmamış
-
RSS Yorumları
-
Del.ico.us
-
Digg!


