Bu derste GraphicsWindow içerisinde Mouse ve Klavye olaylarını kullanacağız.
Başlayalım:
Öncelikle penceremizi oluşturalım:
Şimdi de bir şekil ekleyelim:
Shapes.Move(sekil, 100, 125) komutu ise eklenen şekli (x,y) ekseninde taşıyacak. (100, 125) değerleri yerine istediğiniz değerleri girerek deneme yapabilirsiniz.
Sıra geldi klavye olaylarına. Yazmaya devam:
Önceki kodların devamına ekliyoruz:
Burayı satır satır açıklayalım:
8: Basılacak tuşu tanımlıyoruz. "Return" - "Enter" tuşu demek. İsterseniz herhangi bir harf ya da sayı seçebilir ya da diğer tuşlardan birini kullanabilirsiniz. Örneğin ESC için "Escape" yazmanız yeterli. Sonraki işlemler belirlediğiniz tuş için geçerli olacak.
9-10: Daha önceki dersimizde butona basıldığında çalışacak olan Alt Yordamı kullanmak için "Controls.ButtonClicked = yazdir" komutunu kullanmıştık. Bu kez aynı şeyi buton yerine klavyeden bir tuşa basıldığında uyguluyoruz.
GraphicsWindow.KeyDown = keydown belirlediğimiz tuşa basıldığında
GraphicsWindow.KeyUp = keyup belirlediğimiz tuş bırakıldığında çalışacak alt yordamı temsil ediyor.
Üst satırda belirlediğimiz tuşa basıldığında ve bırakıldığında hangi alt yordam çalışacak onu belirliyoruz.
12-21: Bu satırlar arasında 2 tane alt yordam tanımlıyoruz. Birisi tuşa basıldığında, diğeri ise tuş bırakıldığında çalışacak.
Shapes.Rotate(sekil, 90) komutu tuşa bastığımızda şekli 90 derece döndürecek.
Shapes.Rotate(sekil, 0) komutu ise tuş bırakıldığında şekli 0 dereceye geri döndürecek.
If GraphicsWindow.LastKey = return komutu, önceki derste kullandığımız If Controls.LastClickedButton = buton komutu ile aynı işi görüyor. Klavyeden basılan son tuşu alıyor. Bu durumda eğer bu tuş bizim belirlediğimiz ise işlem yapıyor.
Son durum:
Bir de fare olaylarına bakalım. Devam ediyoruz:
Önceki kodların devamına ekliyoruz:
Yine açıklamayı yapalım:
23-25: Burası üstte klavye tuşu basıldığında ve bırakıldığında işlemleri için yapılan işlem ile aynı. Sırasıyla mouse tuşu basıldığında(23), mouse hareket ettiğinde(24) ve mouse tuşu bırakıldığında(25) işlemleri.
27-42: Bu arada yine alt yordam tanımlıyoruz.
Mouse.IsLeftButtonDown komutu eğer farenin sol tuşu basıldıysa
Mouse.IsRightButtonDown komutu da eğer farenin sağ tuşu basıldıysa yapılacak işlemler için kullanılıyor.
"Mouse:("+GraphicsWindow.MouseX+", "+GraphicsWindow.MouseY+")" komutu ise, farenin sol tuşu basılıyken hareket ettirilirse, fare okunun pencerede hangi (x, y) konumunda olduğunu pencere başlığına yazdırıyor.
Son durum:
Devamını Oku
Başlayalım:
Öncelikle penceremizi oluşturalım:
GraphicsWindow.Width = 400Üstteki kodların ne işe yaradığını daha önceki derslerimizde öğrenmiştik.
GraphicsWindow.Height = 400
GraphicsWindow.Title = "Small Basic - Olaylar - Events"
Şimdi de bir şekil ekleyelim:
sekil = Shapes.AddRectangle(100, 50)Shapes.AddRectangle(100, 50) komutu penceremize genişliği 100, yüksekliği 50 olan bir dikdörtgen ekleyecek.
Shapes.Move(sekil, 100, 125)
Shapes.Move(sekil, 100, 125) komutu ise eklenen şekli (x,y) ekseninde taşıyacak. (100, 125) değerleri yerine istediğiniz değerleri girerek deneme yapabilirsiniz.
Sıra geldi klavye olaylarına. Yazmaya devam:
Önceki kodların devamına ekliyoruz:
return = "Return"
GraphicsWindow.KeyDown = keydown
GraphicsWindow.KeyUp = keyup
Sub keydown
If GraphicsWindow.LastKey = return Then
Shapes.Rotate(sekil, 90)
EndIf
EndSub
Sub keyup
If GraphicsWindow.LastKey = return Then
Shapes.Rotate(sekil, 0)
EndIf
EndSub
Burayı satır satır açıklayalım:
8: Basılacak tuşu tanımlıyoruz. "Return" - "Enter" tuşu demek. İsterseniz herhangi bir harf ya da sayı seçebilir ya da diğer tuşlardan birini kullanabilirsiniz. Örneğin ESC için "Escape" yazmanız yeterli. Sonraki işlemler belirlediğiniz tuş için geçerli olacak.
9-10: Daha önceki dersimizde butona basıldığında çalışacak olan Alt Yordamı kullanmak için "Controls.ButtonClicked = yazdir" komutunu kullanmıştık. Bu kez aynı şeyi buton yerine klavyeden bir tuşa basıldığında uyguluyoruz.
GraphicsWindow.KeyDown = keydown belirlediğimiz tuşa basıldığında
GraphicsWindow.KeyUp = keyup belirlediğimiz tuş bırakıldığında çalışacak alt yordamı temsil ediyor.
Üst satırda belirlediğimiz tuşa basıldığında ve bırakıldığında hangi alt yordam çalışacak onu belirliyoruz.
12-21: Bu satırlar arasında 2 tane alt yordam tanımlıyoruz. Birisi tuşa basıldığında, diğeri ise tuş bırakıldığında çalışacak.
Shapes.Rotate(sekil, 90) komutu tuşa bastığımızda şekli 90 derece döndürecek.
Shapes.Rotate(sekil, 0) komutu ise tuş bırakıldığında şekli 0 dereceye geri döndürecek.
If GraphicsWindow.LastKey = return komutu, önceki derste kullandığımız If Controls.LastClickedButton = buton komutu ile aynı işi görüyor. Klavyeden basılan son tuşu alıyor. Bu durumda eğer bu tuş bizim belirlediğimiz ise işlem yapıyor.
Son durum:
Bir de fare olaylarına bakalım. Devam ediyoruz:
Önceki kodların devamına ekliyoruz:
GraphicsWindow.MouseDown = mdown
GraphicsWindow.MouseMove = mmove
GraphicsWindow.MouseUp = mup
Sub mdown
If Mouse.IsLeftButtonDown Then
Shapes.Rotate(sekil, 45)
ElseIf Mouse.IsRightButtonDown Then
Shapes.Rotate(sekil, -45)
EndIf
EndSub
Sub mmove
If Mouse.IsLeftButtonDown Then
GraphicsWindow.Title = "Mouse:("+GraphicsWindow.MouseX+", "+GraphicsWindow.MouseY+")"
EndIf
EndSub
Sub mup
GraphicsWindow.Title = "Small Basic - Olaylar - Events"
Shapes.Rotate(sekil, 0)
EndSub
Yine açıklamayı yapalım:
23-25: Burası üstte klavye tuşu basıldığında ve bırakıldığında işlemleri için yapılan işlem ile aynı. Sırasıyla mouse tuşu basıldığında(23), mouse hareket ettiğinde(24) ve mouse tuşu bırakıldığında(25) işlemleri.
27-42: Bu arada yine alt yordam tanımlıyoruz.
Mouse.IsLeftButtonDown komutu eğer farenin sol tuşu basıldıysa
Mouse.IsRightButtonDown komutu da eğer farenin sağ tuşu basıldıysa yapılacak işlemler için kullanılıyor.
"Mouse:("+GraphicsWindow.MouseX+", "+GraphicsWindow.MouseY+")" komutu ise, farenin sol tuşu basılıyken hareket ettirilirse, fare okunun pencerede hangi (x, y) konumunda olduğunu pencere başlığına yazdırıyor.
Son durum: