pcworld online logo

Visual Basic ile Kes - Kopyala -Yapıştır!

Windows altında çalışan hemen hemen tüm metin editörleri panoyu kullanır. Panoya veri yapıştırmayı, panodan veri almayı geçen aylarda verdiğimiz örneklerle iyice açıkladık. 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.SelText

Metnin, 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() 

visual basic resim2 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?
Bunu anlamak için aşağıdaki kodu bir inceleyin.

Dim ara, nerede                	' Kullanacağımız değişkenleri atayalım
' 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

Bütün bunları bildikten sonra oturup kendi metin editörünüzü kolayca yazabilirsiniz...