17 Ağustos 2011 Çarşamba

Clipboard-Kopyalama kesme ve yapıştırma işlemi


procedure CopyButtonClick(Sender: TObject);
begin
If ActiveControl is TMemo then TMemo(ActiveControl).CopyToClipboard;
If ActiveControl is TDBMemo then TDBMemo(ActiveControl).CopyToClipboard;
If ActiveControl is TEdit then TEdit(ActiveControl).CopyToClipboard;
If ActiveControl is TDBedit then TDBedit(ActiveControl).CopyToClipboard;
end;

procedure PasteButtonClick(Sender: TObject);
begin
If ActiveControl is TMemo then TMemo(ActiveControl).PasteFromClipboard;
If ActiveControl is TDBMemo then TDBMemo(ActiveControl).PasteFromClipboard;
If ActiveControl is TEdit then TEdit(ActiveControl).PasteFromClipboard;
If ActiveControl is TDBedit then TDBedit(ActiveControl).PasteFromClipboard;
end;

---YADA---

Windows Kes-Kopyala-Yapıştır İşlemlerinde Clipboard(Pano)u Kullanır.VB ile Pano Clipboard Nesnesi ile Kullanılır. Şimdi Bu Nesnenin Metodlarını İnceleyelim
1.Clipboard.Clear ->Clipboardun İçeriğini Temizler
2.Clipboard.GetData [Format]
' Panodan [format] ile Belirtilen Nesneyi  Almaya Yarar.Bunlar:
' 2->BMP 3->WMF 8->DIB 9->Palet
3.Clipboard.GetFormat -> Panodaki Nesnenin Formatını Alır.
' -16640 = DDE Bilgisi
' -16639 = RTF Metni
' 1 = Text
' 2 = BMP
' 3 = WMF
' 8 = DIB
' 9 = Palet
' 10 = Dosya Adı
4.Clipboard.GetText[Format] -> Panodan Text Almaya Yarar.Format Yerine
' 1->Normal Text &HBF00->DDE &HBF01->RTF
5.Clipboard.SetData Data, [Format] ->' Panoya BMP,WMF,DIP Ve Palet Koymaya Yarar.
6.Clipboard.SetText String,[Format]->' Panoya Text Kopyalamaya Yarar.
Not:SetData Ve SetText Metodlarını Kullanmadan Önce  Clipboard.Clear ile Temizlemelisiniz.
SelStart : Seçilen bölgenin başlangıcı
SelLenght : Seçilen bölgenin karakter sayısı olarak uzunluğu
SelText : Klavye ya da mouse yardımı ile seçilen metin içeriği

Bul Değiştir
Bul = InStr(text1.Text, aranantext)
If Bul Then
text1.SelStart = Bul - 1 ' Başlangıç ve bitiş aralığı
text1.SelLength = Len(aranantext)
Screen.ActiveControl.SelText = "" ' Sil
Screen.ActiveControl.SelText = ClipBoard.GetText() ' Yapıştır
End If
Clipboard Metodları Bukadar.Aşağıdaki Kodu İnceleyerek Daha iyi Anlayabilirsiniz.
Programımızda Sürekli Panodaki Nesneyi Kontrol Edeceğiz Ve Formatına Göre İşlem Yapacağız...

Forma 1 PictureBox,1 TextBox 1  //Timer Ekleyin(Interval=500)...
Private Sub Timer1_Timer()
On Local Error Resume Next
If Clipboard.GetFormat(vbCFLink) Or Clipboard.GetFormat(vbCFRTF) Then
Text1 = Clipboard.GetText
End If
If Clipboard.GetFormat(vbCFBitmap) Or Clipboard.GetFormat(vbCFEMetafile) Or Clipboard.GetFormat(vbCFDIB) Then Picture1.Picture = Clipboard.GetData
End If
If Clipboard.GetFormat(vbCFText) Then Text1 = Clipboard.GetText
Buraya Küçük Bir Örnek Koydum.Burada Panodaki
Metin Kontrol Ediliyor.Soldan İlk 4 Karakter
http:// veya www. ise Yani URL ise istenen
işlem Gerçekleştirilebilir...
If LCase(Left(Text1, 7)) = "http://" Or LCase(Left(Text1, 4)) = "www." Then
Shell "start " & Clipboard.GetText
Clipboard.Clear
End If
End If
End Sub.

Hiç yorum yok:

Yorum Gönder