Geri git   CurcunaForum.Org > Webmaster - Grafik - Tasarım > Delphi , Visual basic , C , C++
Kayıt ol Yardım Topluluk

Delphi , Visual basic , C , C++ Delphi , visual basic.

 
 
LinkBack Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 04-08-2008   #1
Profil
Üye
Avatar Yok
 
Üyelik tarihi: Mar 2007
Mesajlar: 907
Üye No: 114

Seviye: 26 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Canlılık: 0 / 646
Çekicilik: 302 / 34223
Tecrübe: 87

Teşekkür

Teşekkürler: 0
0 Mesajina 0 Tesekkür Aldi
Rep
Rep Puanı : 753
Rep Gücü : 26
İtibar :
SAMSUN is a splendid one to beholdSAMSUN is a splendid one to beholdSAMSUN is a splendid one to beholdSAMSUN is a splendid one to beholdSAMSUN is a splendid one to beholdSAMSUN is a splendid one to behold
Klavye oLayLarı

KeyPreview

Form aktifken basılan tuşlardan formun etkilenip etkilenmeyeceği bu özellik kullanılarak ayarlanılır. Bu özellik iki değer alabilir. Eğer değer true ise formda bulunan herhangi bir kontrolün üzerinde basılan tuşlar ilk önce formun KeyPress, Keydown, KeyUp olaylarını meydana getirir. Bu değer false ise kontrolün üzerinde basılan tuşlar o kontrolün KeyPress, Keydown, KeyUp olaylarını meydana getirir.

KeyPress (Bir tuşa basma olayı)

Çalışma anında klavyenin yön ve kontrol (Control Alt, Shift vs.) tuşları dışında herhangi bir tuşa basılması halinde KeyPress olayı meydana gelir. KeyPress olayı için Visual Basic tarafından hazırlanan yordama basılan tuşun Ascii kodu parametre olarak gönderilir. Formlar için KeyPress olayının olabilmesi için formda düğme ve metin kutusu gibi nesnelerin olmaması gerekir. Bu olay ve yordam daha çok dışarıdan bilgi girişi yapılan nesneler için kullanıldığı zaman işlevsel olmaktadır. Ancak formlar için yine KeyPress olayı için basit bir örnek verebiliriz. Bu örnek çalışma anında tuşa basılan tuşun Ascii kodunu bulup ekrana yazar:
İmleç metin kutusu üzerinde iken bir tuşa basıldığı anda Keydown’dan sonra tetiklenen olaydır. Bu olayda basılan tuşun Ascii değeri KeyAscii değişkenine atanır. Bu değişkeni kullanarak hangi tuşa basıldığını öğrenebilirsiniz.

Aşağıdaki program, formun çalışması sırasında hangi tuşa basıldığını ekrana yazar. (Bu key olaylarının kullanılabilmesi için, nesnenin keypreview özelliğinin açık olması gerekir.) Aktif nesne tarafından algılanır.

Çalışma anında her tuşa basma işleminden sonra Form_KeyPress yordamı işletilir. Basılan tuşun Ascii kodu Chr ( ) fonksiyonuna parametre olarak verilerek hangi tuşa basıldığı öğrenilebilir.

Örnek:

Private Sub Form_KeyPress(KeyAscii As Integer)ShowPrint Chr(KeyAscii) & " tusuna bastiniz."End SubÖrnek:

Private Sub Form_KeyPress (KeyAscii As Integer )
Tuşun basılıp bırakılması ile yapılacak olan işlemler
End Sub

KeyDown ve KeyUp Olayları

KeyDown ve KeyUp olayları işlev bakımında KeyPress olayına benzeseler de bazı farklılıklar vardır. KeyDown olayı tuşa basıldığı anda, KeyUp ise tuşun serbest bırakıldığı sırada meydana gelir. KeyPress olayında ise tuşa basma – bırakma ayrımı yoktur. Bu iki olayı temsil eden yordamlar KeyPress olayına ait yordamdan farklı olarak dışarıdan ikinci bir parametreyi daha almaktadır. Basılan tuşun Ascii kodu KeyCode adlı parametreye (değişken) aktarılır.

KeyDown: İmleç metin kutusu üzerinde iken bir tuşa basıldığı anda tetiklenen olaydır. Bu olay herhangi bir tuşa basıldığı anda meydana gelir. Bu olayda iki parametre kullanılır. Bu parametrelerin biri basılan tuşun Ascii değerini, diğeri ise bu tuşla birlikte Shift, Ctrl ve Alt tuşlarından herhangi birine basılıp basılmadığı konusunda bilgi tutar. Aktif nesne tarafından algılanır. KeyUp olayından önce oluşur. Shift adındaki ikinci parametreye ise bu olay meydana geldiği zaman Shift, Ctrl ve alt tuşlarının birinin basılı durumda olup olmadığı konusunda bilgi aktarılır. KeyDown olayı sırasında Shift tuşu basılı durumda ise Shift değişkeni 1,basılı durumda değilse 0 değerini içerir. Bu olay sırasında Ctrl tuşu basılı durumda ise Shift parametresi 2 değerini alır ve Alt tuşu basılı durumda ise 4 değerini alır.
Aşağıdaki örnekte kullanıcı Ctrl tuşu ile birlikte A tuşuna basarsa kullanıcıya mesaj verecektir.
Örnek:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = 65 And Shift = 2 ThenMsgBox "Ctrl+A tus kombinasyonunu kullandiniz."End IfEnd Sub
Bu çalıştırıldığı anda herhangi bir tuşa basılması durumunda KeyDown olayı meydana gelir ve form_Keydown yordamı işletilir. Bu sırada Shift tuşu basılı durumda ve basılan tuş Enter ise ekrana MsgBox( ) ile mesaj verilir.
KeyUp olayı KeyDown farklı olarak tuşa basıldığı sırada değil, tuşun serbest bırakıldığı yani kullanıcının elini tuşun üstünden kaldırdığı zaman meydana gelir. Bunun dışında KeyUp olayı KeyDown’dan farklı değildir. KeyDown olayının KeyPress olayı karşısında önceliği var.

Örnek:

Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
Tuşa basılması ile yapılacak olan işlemler
End Sub

KeyUp: İmleç metin kutusu üzerinde iken bir tuşa basılıp bırakıldığı anda tetiklenen olaydır. Bu olay ise kullanıcının bastığı tuşu bırakması sırasında meydana gelir. Yukarıdaki tabloda Shift parametresi için gösterilen değerler bu olaydada geçerlidir. Basılı olan bir tuşun bırakılmasıdır. Basılı olan tuşun bırakılması olayıdır. Aktif nesne tarafından algılanır. KeyDown olayından sonra oluşur.

Örnek:

Private Sub Form_KeyUp (KeyCode As Integer, Shift As Integer)
Basılı olan tuşun bırakılması ile yapılacak olan işlemler
End Sub











Aşağıdaki tabloda Shift parametresinin alabileceği değerler ve açıklamalarını bulabilirsiniz.



Shift Parametresinin içeriği
Basılı durumda olan tuşlar
0
Shift,Ctrl ve Alt tuşları basılı durumda
1
Shift tuşları basılı durumda
2
Ctrl tuşu basılı durumda
3
Shift ve Ctrl tuşları basılı durumda
4
Alt tuşu basılı durumda
5
Shift ve Alt tuşaları basılı durumda
6
Ctrl ve Alt tuşları basılı durumda
7
Shift,Ctrl ve Alt tuşları basılı durumda

Ya da bu şekilde de diyebiliriz:


Shift
Tuş Kombinasyonu
0
Basılı Tuş Yok (Ctrl,Alt,Shift)

1
Shift
2
Ctrl

3
Shift + Ctrl

4
Alt

5
Shift + Alt

6
Ctrl + Alt

7
Shift + Ctrl + Alt




Chr( ) Fonksiyonu

Bu fonksiyon 0 ile 255 arasındaki herhangi bir sayıya karşılık gelen Ascii karakterini elde etmek amacıyla kullanılır. Chr ( ) fonksiyonu dışarıdan parametre olarak değeri 0 ile 255 arasında değişen tamsayı bir değeri almaktadır. Geriye bu sayının Ascii karakterini döndürür. Döndürülen değerlerin bazıları ekranda gösterilebilinen karakter olmayıp bir etkidir. Chr( ) fonksiyonunun geriye döndürdüğü bilgi Variant tiptedir. Eğer geriye karaktersel bilginin gönderilmesini istiyorsanız Chr( ) yerine Chr$( ) fonksiyonunu kullanabilirsiniz.

Örnek

Private Sub Command1_Click()
Dim say
say = InputBox("Lütfen bir rakam giriniz")
Print Chr(say)
End Sub


Chr$: Gönderdiğiniz ASCII değerini karakter cinsinden döndürür.0–255 arasında girilen bir nümerik ascii koduna karşılık gelen karakteri verir.

Yazılışı: CHR (Sayı) Yazılışı: CHR$ (Sayı)


Asc( ) Fonksiyonu


Gönderdiğiniz karakterin ASCII değerini döndürür. Klavyeden girilen herhangi bir ifadenin, nümerik ascii karşılığını verir. Eğer tek harfli ifade yerine sözcük girerseniz, sözcüğün ilk karakterini baz alacaktır. Mesela asc (bilgisayar)denirse b' nin nümerik ascii karşılığı olan 98 elde edilir.
Bu fonksiyon, herhangi bir karaktersel bilginin ilk karakterinin Ascii kodunu bulmak amacıyla kullanılmaktadır. Asc() fonksiyonu parametre olarak aldığı karaktersel bilginin ilk karakterinin Ascii kodunu döndürür. Döndürülen değer 0 ile 255 arasında değer olabilir. Yazılışı: ASC (Karaktersel Bilgi)

Örnek

Private Sub Command1_Click()
Dim say
say = Asc("A")
Print say
say = Asc("a")
Print say
say = Asc("oguz")
Print say
End Sub


Asc( ) ve Chr( ) fonksiyonları kullanılarak yapılan bir örnek:

Private Sub Form_Load( )
Dim I, mesaj
For I = Asc(“A”) to Asc (“ Z ”)
Mesaj = Mesaj + Chr (I)
Next I
MsgBox Mesaj
End Sub

Örnek:

Bu programda text1'e gireceğiniz karakterin karşılığı text2'de,text3'de girdiğiniz karakterin karşılığı text4'de görünecektir.

Private Sub Command1_Click()a = Text1.Texta = Asc(a)Text2.Text = Str(a)End SubPrivate Sub Command2_Click()b = Text3.Textb = Val(b)If b > 255 Then GoTo sonb = Chr(b)Text4.Text = bEnd Sub

Basılan Tuşun Kodunu Bulmak



Örnek:



Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

MsgBox "Basılan Tuşun Kodu :" & KeyCode

End Sub
Basılan Tuşun Ascii Değerini Bulmak



Örnek:



Private Sub Form_KeyPress(KeyAscii As Integer)
MsgBox "Basılan Tuşun Ascii Değeri :" & KeyAscii
End Sub

Sadece Büyük Harf Kullanmak



Örnek:



Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
End If
KeyAscii = Asc(UCase(Chr(KeyAscii))) ‘ UCase ile büyük harfe çevriliyor
Print Chr(KeyAscii)
End Sub
Esc Tuşu ile Çıkış



Örnek:



Çıkış_Butonu. Cancel = True
Private Sub Çıkış_butonu_Click()
End
End Sub

NumLock ve CapsLock’u Açıp Kapatmak

Örnek:
(General)(Declaration)
Const VK_CAPITAL = &H14 ‘ CapsLock
Const VK_NUMLOCK = &H90 ‘ NumLock
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private Declare Function GetKeyboardState Lib "user32"
(kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32”
(kbArray As KeyboardBytes) As Long
Dim Tuş_Kodu As String
Dim kbArray As KeyboardBytes
Private Sub Command1_Click()
' Tuş_Kodu = VK_NumLock
Tuş_Kodu = VK_CAPITAL
GetKeyboardState kbArray
kbArray.kbByte(Tuş_Kodu) = 0 ' Kapat
SetKeyboardState kbArray
End Sub
Private Sub Command2_Click()

kbArray.kbByte(Tuş_Kodu) = 1 ' Aç

SetKeyboardState kbArray

End Sub


Sisteme Tuş Basımı Yollamak



Örnek:



(General)(Declaration)

Option Explicit

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _

ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const VK_CONTROL = &H11

Const KEYEVENTF_KEYUP = &H2

Const VK_ESCAPE = &H1B

Private Sub Form_Click()

Call keybd_event(VK_CONTROL, 0, 0, 0) ‘ CTRL

Call keybd_event(VK_ESCAPE, 0, 0, 0) ‘ ESC

Call keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0)

Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0)

End Sub


Fonksiyon Tuşlarına Görev Atamak



(General)(Declaration)

Option Explicit

Const KEY_F1 = &H70

Const KEY_F2 = &H71

Const KEY_ESCAPE = &H1B

Form1.KeyPreview = True ‘ Formun KeyPreview özelliği True

Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode

Case KEY_F1 ‘ F1 - Tarih

Text1.Text = Date$

Case KEY_F2 ‘ F2 - Saat

Text1.Text = Time$

Case KEY_ESCAPE ‘ ESC – Çıkış

Unload Me

End Select

End Sub



SendKeys – Tuş Basımı Gönderme
Bu kod klavyenizin ışıklarını yakıp söndürür.
Dim i As Integer
For i = 1 To 150
SendKeys "{CAPSLOCK}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{SCROLLLOCK}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
Next i

SendKeys;(words) : Mesaj yollar * tusu ile yazdiginiz siler
SendKeys;2;13 : Sends ozel tuslar [sag,sol,yukari,asagi]
Kes, Kopyala, Yapistir
Bir TextBoxta Kes, Kopyala, Yapistir, Geri Al islemlerinin yapilmasi için iki tane çok kolay yol mevcut. Asagidaki örneklerde SendKeys methodu kullanilıyor.

birinci örnek:

Sub DoEditThing(whatThing As String, onWhat As Object)
Select Case whatThing
Case "Copy"
onWhat.SetFocus
SendKeys "^C"
Case "Cut"
onWhat.SetFocus
SendKeys "^X"
Case "Paste"
onWhat.SetFocus
SendKeys "^V"
Case "Undo"
onWhat.SetFocus
SendKeys "^Z"
End Select
End Sub

Asagidaki kod ayni isi yapan ikinci örnek:


Sub DoEditThing(whatThing As String, onWhat As Object)
Dim Send$
Select Case whatThing
Case "Copy"
Send = "^C"
Case "Cut"
Send = "^X"
Case "Paste"
Send = "^V"
Case "Undo"
Send = "^Z"
End Select
If Len(Send) Then
onWhat.SetFocus
SendKeys Send
End If
End Sub

Örnek:
Private Sub Command1_Click()

SendKeys "%{F4}", True ‘ Alt + F4 Programı kapar

End Sub


Key
Code
BACKSPACE
{BACKSPACE}, {BS}, or {BKSP}
BREAK
{BREAK}
CAPS LOCK
{CAPSLOCK}
DEL or DELETE
{DELETE} or {DEL}
DOWN ARROW
{DOWN}
END
{END}
ENTER
{ENTER}or ~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS or INSERT
{INSERT} or {INS}
LEFT ARROW
{LEFT}
NUM LOCK
{NUMLOCK}
PAGE DOWN
{PGDN}
PAGE UP
{PGUP}
PRINT SCREEN
{PRTSC}
RIGHT ARROW
{RIGHT}
SCROLL LOCK
{SCROLLLOCK}
TAB
{TAB}
UP ARROW
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}
F15
{F15}
F16
{F16}

Key
Code
SHIFT
+
CTRL
^
ALT
%

SAMSUN is offline SAMSUN isimli üyenin yazdığı bu Mesajı değerlendirin.   Alıntı ile Cevapla
 

Etiketler
klavye, olaylari


Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 00:20.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.