Настани со тастери
Сакаме во Small Basic да изработиме програма во која ќе имаме настани со тастатери од тастатурата, односно ќе се овозможи ротација на графички објект во графичкото прозорче кога ќе притиснеме на некој тастер од тастатурата.
Значи во примерот, ќе притиснеме на RETURN (ENTER) за да го ротираме правоаголникот во графичкиот прозорец. Кога ќе го отпуштиме овој тастер, правоаголникот ќе се врати во неговата оригинална положба.
Што треба да направиме?
- Најпрво да го нацртаме правоаголникот со користење на командата AddRectangle од објектите Shapes.
- Локацијата на правоаголникот ја одредуваме со користење на Move операцијата.
- Го одредуваме тастерот со кој правоаголникот ќе ротира. Го најавуваме тастерот и го прифаќаме како име на варијаблата.
- Го користиме KeyDown настанот од GraphicsWindow објектот и најавуваме потпрограма за ротација на објектот кога е притиснато копчето.
- Едноставно, го користиме KeyUp настанот и најавуваме потпрограма за ротација на објектот кога корисникот ќе го ослободи притиснатиот тастер.
Кога ќе кликнеме Run, програмот се извршува. Во графичкиот прозорец се појавува правоаголникот во средината. Кога ќе притиснеме RETURN (ENTER), правоаголникот ротира. Кога ќе го ослободиме копчето Return (Enter), правоаголникот ротира во оригиналната положба.
GraphicsWindow.Height = 300
GraphicsWindow.Width = 300
GraphicsWindow.Title = "Graphics Window"
shape1 = Shapes.AddRectangle(100, 50)
Shapes.Move(shape1, 100, 125)
return = "Return"
GraphicsWindow.KeyDown = keydown
GraphicsWindow.KeyUp = keyup
Sub keydown
If GraphicsWindow.LastKey = return then
Shapes.Rotate(shape1, 90)
EndIf
EndSub
Sub keyup
If GraphicsWindow.LastKey = return then
Shapes.Rotate(shape1, 0)
EndIf
EndSub
Како што направивме настани со татстери, можеме да направиме програма во Small Basic што работи со настани кои ќе се извршуваат со клик на глувчето. Настаните со глувчето генерираат акции во програмата кога корисникот клика на глувчето.
MouseDown одговара на настан кога корисникот клика на глувчето. MouseUp одговара на настан кога корисникот го ослободува глувчето.
MouseMove одговара на настан кога корисникот го движи покажувачот на глувчето во графичкиот прозорец.
Да видиме како можеме да ги користиме овие настани во програмата. Во овој пример, кликаме и го движиме (лизгаме) глувчето во графичкиот прозорец за да креираме линии со различни бои и ширини.
GraphicsWindow.MouseDown = MouseClick
GraphicsWindow.MouseMove = MouseDrag
GraphicsWindow.MouseUp = MouseUp
Sub MouseClick
OrgX = GraphicsWindow.MouseX
OrgY = GraphicsWindow.MouseY
EndSub
Sub MouseDrag
x = GraphicsWindow.MouseX
y = GraphicsWindow.MouseY
If (Mouse.IsLeftButtonDown) then
GraphicsWindow.DrawLine(OrgX, OrgY, x, y)
Endif
EndSub
Sub MouseUp
GraphicsWindow.PenColor=GraphicsWindow.GetRandomColor()
GraphicsWindow.PenWidth=Math.GetRandomNumber(5)
EndSub
Домашна работа:
1. Направете програма во која ќе користите настани со тастер, Односно, да се ротира некоја фигура (по ваш избор, само да не е круг) за 45 степени со клик на татстер, а со отпуштање на татерот, објектот да се враќа во нормална положба.
2. Истата задача да се дополни настан со глувчето. Односно при клик на глувчето да се ротира објектот за 90 степени.


No comments:
Post a Comment