Windows altında çalışan hemen hemen tüm metin editörleri panoyu kullanır. Peki metin editörleri metinin hangi parçasının seçildiğini nasıl anlıyor. Metnin belirli bir kısmını nasıl kesip alıyor? İstenilen metni bütün bir yazı içinde nasıl buluyor? Bu dediklerimizi yapmak için Visual Basic ile hazırlanmış tüm metin editörleri hemen hemen aynı teknikleri uygular. İşte bunlardan bir kaçı:
Metnin, kullanıcı tarafından seçilen kısmının anlaşılıp panoya kopyalanması için (Kopyala)ClipBoard.SetText screen.ActiveControl.SelTextMetnin, kullanıcı tarafından seçilen kısmının anlaşılıp panoya kopyalanması ve seçilen yerin silinmesi için (Kes)
ClipBoard.SetText screen.ActiveControl.SelText ' Seçilen metni ilk önce kopyala screen.ActiveControl.SelText = "" ' Sonra işaretlenen yeri sil.Panodan yapıştırılan kısmın kullanıcı tarafından seçilen kısmın üzerine yazılması için(Yapıştır)
screen.ActiveControl.SelText = ClipBoard.GetText()Metnin belirtilen kısmını anlamak ve metnin herhangi bir kısmını otomatik olarak seçtirmek için SelText komutunu, metnin hangi kısımdan seçilmeye başlanacağını tayin etmek için SelStart komutunu, Seçilecek metnin uzunluğunu ayarlamak için ise SelLength komutunu kullanıyoruz. Hatırlayacağınız gibi Microsoft Word kullanılırken CTRL+A tuş kombinasyonu tüm metni otomatik olarak seçebiliyordu. Sadece ufacık bir kod parçasıyla bunu gerçekleştirebiliriz.
text1.SelStart = 0 ' SelStart komutu metnin işaretlenen kısmının nereden
'başlayacağını belirtir. Biz işaretlemeye metnin
'başından başlamak istiyoruz...
text1.SelLength = Len(text1.Text) 'Metnin işaretlenen kısmı metnin uzunluğu kadar olacak
Peki metin editörleri uzun bir yazının içinde istediğimiz kelimeyi nasıl arayıp buluyorlar?Dim ara, nerede ' Kullanacağımız değişkenleri atayalımBütün bunları bildikten sonra oturup kendi metin editörünüzü kolayca yazabilirsiniz...
' Kullanıcıdan aranacak metni iste ara = InputBox("Aranacak metni girin:", "Metin Teknikleri Örneği", , 1000, 1000) nerede = InStr(text1.Text, ara) ' Metni yazı içinde ara If nerede Then ' Bulunursa... text1.SelStart = nerede - 1 ' Bulunan metnin başını işaretle text1.SelLength = Len(ara) ' Bulunan metnin uzunluğu kadar yazıyı işaretle Else ' Metin bulunamazsa... MsgBox "Metin bulunamadı!", 64 End If