Sevgili Windowsunuz programlarınızda kullanabilmeniz için gerekli olan herşeyi önünüze sunmuştur. Bir text editörü yapmaya karar verdiniz. Ama her editörde olan bir özelliği siz kullananmıyorsunuz; "Geri Alma İşlemi". Ya da editörünüz yaptığınız her hareketten önce text kutusundaki yazılarınızı bir köşede saklıyor.
Dediğimiz gibi WINDOWS, size sunduğu bir API fonksiyonuyla sizi bu zahmetten kurtarıyor. Üzerinde bir TextBox ve bir CommandButton bulunan bir form yarattıktan sonra aşağıdaki kısacık kodu girin ve sonuca bir bakın. Programı çalıştırdığınızda her zaman bir önce yaptığınız işlemin kaydedildiğini ve butona basıldığında text kutucuğu üzerine geri geldiği göreceksiniz.
GERIAL.BAS adlı formunuzdan ayrı bir modül yaratıp ilk 4 satırı bunun içine kaydedin.
Declare Function SendMessage_ Lib "User" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByValwParam As Integer, lParam As Any) As LongGlobal Const WM_USER = &H400Global Const EM_UNDO = WM_USER + 23Şimdi formumuza geçebiliriz...Private Sub Command1_Click()'Text kutusundaki metin değişmeden önce her seferinde WINDOWS tarafındanotomatik olarak saklanır.UndoResult = SendMessage(Text1.hWnd, EM_UNDO, 0, 0) API fonksiyonunu çağır.'Eğer UndoResult = -1 ise bir hata oluşmuş demektir.End Sub
--------------------------------------------------------------------------------
Bu anlattıklarım tabiki API örneklerini vermek içindir. Ancak "default" olarak text kutuları Ctrl+Z kombinasyonunu destekler. Yani herhangi bir API deklerasyonu yapmadan da bu özelliği kullanabilirsiniz.
Ayrıca Daha basit bir kod ile SendKeys ("^Z") ile son işlemi geri alabilirsiniz.
Dediğimiz gibi WINDOWS, size sunduğu bir API fonksiyonuyla sizi bu zahmetten kurtarıyor. Üzerinde bir TextBox ve bir CommandButton bulunan bir form yarattıktan sonra aşağıdaki kısacık kodu girin ve sonuca bir bakın. Programı çalıştırdığınızda her zaman bir önce yaptığınız işlemin kaydedildiğini ve butona basıldığında text kutucuğu üzerine geri geldiği göreceksiniz.
GERIAL.BAS adlı formunuzdan ayrı bir modül yaratıp ilk 4 satırı bunun içine kaydedin.
Declare Function SendMessage_ Lib "User" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByValwParam As Integer, lParam As Any) As LongGlobal Const WM_USER = &H400Global Const EM_UNDO = WM_USER + 23Şimdi formumuza geçebiliriz...Private Sub Command1_Click()'Text kutusundaki metin değişmeden önce her seferinde WINDOWS tarafındanotomatik olarak saklanır.UndoResult = SendMessage(Text1.hWnd, EM_UNDO, 0, 0) API fonksiyonunu çağır.'Eğer UndoResult = -1 ise bir hata oluşmuş demektir.End Sub
--------------------------------------------------------------------------------
Bu anlattıklarım tabiki API örneklerini vermek içindir. Ancak "default" olarak text kutuları Ctrl+Z kombinasyonunu destekler. Yani herhangi bir API deklerasyonu yapmadan da bu özelliği kullanabilirsiniz.
Ayrıca Daha basit bir kod ile SendKeys ("^Z") ile son işlemi geri alabilirsiniz.
